Merhabalar PyQt5te Frameless bir uygulamayı nasıl resizable yapabilirim resize ile birlikte ekranda olan her şeyinde büyümesini istiyorum bunun için özel bir metod var mı yoksa kendim mi buna özel bir metod yazmalıyım
import sys
from PyQt5 import QtCore, QtWidgets
class FramelessResizable(object):
def setup(self,f):
f.setObjectName("Frameless-Resizable-Window")
f.resize(300,400)
self.gridLayout = QtWidgets.QGridLayout(f)
self.button = QtWidgets.QPushButton(f)
self.button.setText("Button")
self.gridLayout.addWidget(self.button, 0, 0, 1, 1)
self.sizegrip = QtWidgets.QSizeGrip(f)
self.gridLayout.addWidget(self.sizegrip, 1, 0, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
flags = QtCore.Qt.WindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
f.setWindowFlags(flags)
app = QtWidgets.QApplication(sys.argv)
f = QtWidgets.QWidget()
ui = FramelessResizable()
ui.setup(f)
f.show()
sys.exit(app.exec_())
En basit haliyle böyle. Takıldığın yer olursa sorabilirsin.
Çalışmasa atmazdım.
oluyor fakat bir sürü stackedwidget olduğu için sizegripi düzgünce ekleyemiyorum ekleyince diğerleri ekranla birlikte büyümüyor
isterseniz kodları atayım ama biraz karışık eğer yapamassak sıfırdan yapıcaz ana ekranı
Sizegrip eklemenin diğerlerini büyüyüp küçülmesine bi etkisi olduğunu sanmıyorum. Widget’ların yerleşimlerini yanlış yapıyor olabilirsin.
tekrardan bir gui yapmaya başladım hatalı oldukları için
import sys
from PyQt5 import QtCore, QtWidgets , QtGui
from qtmodern.styles import dark
from qtmodern.windows import ModernWindow
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MainWindow(object):
def __init__(self):
self.window = QtWidgets.QWidget()
self.window.setGeometry(QtCore.QRect(500, 0, 800, 600)) # arbitrary size/location
self.window.setMinimumSize(800,600)
self.window.setMaximumSize(1366,768)
self.main_screen_widget = QStackedWidget()
self.main_screen_widget.setGeometry(0,35,80,700)
self.normal_menu = QWidget()
self.main_screen_widget.addWidget(self.normal_menu)
self.stacked_widget = QStackedWidget()
self.stacked_widget.setGeometry(100,35,2000,650)
self.page1 = QWidget()
self.stacked_widget.addWidget(self.page1)
self.scene =QGraphicsScene()
self.greenBrush = QBrush(Qt.green)
self.grayBrush = QBrush(Qt.gray)
self.pen = QPen(Qt.red)
self.graphicView = QGraphicsView(self.scene, self.normal_menu)
self.graphicView.setGeometry(0,0,80,665)
#label1
self.label1 = QLabel("Code" , self.page1)
self.label1.setFont(QFont('Firestarter' , 30))
self.label1.setGeometry(460,0,100,80)
self.label1.setStyleSheet("color:red")
#duelLabel
self.duelLabel = QLabel("Duel" , self.page1)
self.duelLabel.setFont(QFont('Firestarter' , 30))
self.duelLabel.setGeometry(560,0,80,80)
self.duelLabel.setStyleSheet("color:orange")
self.Welcome_Label = QLabel("Welcome to" , self.page1)
self.Welcome_Label.setFont(QFont('Firestarter' , 30))
self.Welcome_Label.setGeometry(220 , 0, 220,80)
self.Welcome_Label.setStyleSheet("color:white")
self.what_is_codeduel = QLabel("What is Code Duel?" , self.page1)
self.what_is_codeduel.setFont(QFont('Gravity' , 25))
self.what_is_codeduel.setGeometry(10,100,300,50)
self.what_is_codeduel.setStyleSheet("color:silver")
self.about_code_duel = QLabel("With Code Duel, you can fight codes with your friends.The first person \nwho finds the problem will win the duel.",self.page1)
self.about_code_duel.setFont(QFont('Arial' , 20))
self.about_code_duel.setGeometry(10,180,900,70)
self.about_code_duel.setStyleSheet("color:rgb(220,220,220)")
self.hBox = QtWidgets.QHBoxLayout()
self.hBox.addWidget(self.stacked_widget)
self.layout = QtWidgets.QVBoxLayout()
self.sizegrip = QtWidgets.QSizeGrip(self.window)
self.layout.addLayout(self.hBox)
self.layout.addWidget(self.main_screen_widget , QtCore.Qt.AlignLeft | QtCore.Qt.AlignBottom)
self.layout.addWidget(self.sizegrip, 0, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
self.window.setLayout(self.layout)
self.mw = ModernWindow(self.window) # qtmodern
self.mw.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = MainWindow()
dark(app) # qtmodern
sys.exit(app.exec_())
burda şöyle bir görünüm elde etmek istiyorum ama başaramıyorum hepsininde ekranla birlikte büyümesini istiyorum menubar düzgün oldu fakat şu labellarda başka bir stacked widgeta eklediğim için sıkıntı çıktı ve şimdi menubara buttonda ekleyemiyorum pek bilgim yok layoutları çok kullanmıyordum araştırdım ama pek bir şey bulamadım yüksek ihtimal yanlış arattım : (