window size ändern
Verfasst: Montag 31. Oktober 2022, 16:34
Hallo zusammen,
habe hier einen Beispielcode, dessen Filemenu die Buttons Minimieren, Normal, Maximieren enthält.
Bei der Ausführung Normal, bekomme ich das Fenster nicht zentriert!
Das umschalten von Minimieren zu Maximieren und umgekehrt funktioniert.
Wähle ich dazwischen die Ausführung Normal aus, lässt sich das Fenster anschließend nicht mehr maximieren, hingegen minimieren funktioniert weiterhin.
Wäre schön, wenn jemand von Euch mir erklären könnte, warum dies nicht funktioniert und die Fehler im Code.
Grüße Nobuddy
habe hier einen Beispielcode, dessen Filemenu die Buttons Minimieren, Normal, Maximieren enthält.
Bei der Ausführung Normal, bekomme ich das Fenster nicht zentriert!
Das umschalten von Minimieren zu Maximieren und umgekehrt funktioniert.
Wähle ich dazwischen die Ausführung Normal aus, lässt sich das Fenster anschließend nicht mehr maximieren, hingegen minimieren funktioniert weiterhin.
Code: Alles auswählen
import sys
from PyQt5.QtCore import QRect
from PyQt5 import QtGui
from PyQt5.QtWidgets import (
QApplication,
QMainWindow,
QDesktopWidget,
QAction
)
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.title = "PyQt5 QMainWindow"
self.setWindowIcon(QtGui.QIcon("icon.png"))
self.setWindowTitle(self.title)
# screen size
self.screenGeometry = QDesktopWidget().screenGeometry()
screenWidth = self.screenGeometry.width()
screenHight = self.screenGeometry.height()
screenSize = 'Screen size: {} x {}'.format(screenWidth, screenHight)
# window size
height = int(screenHight * 0.75)
width = int(screenWidth * 0.75)
windowSize = 'Window size: {} x {}'.format(width, height)
print(screenSize + '\n' + windowSize)
top = int((screenHight - height) / 2)
left = int((screenWidth - width) / 2)
self.mediumGeometry = left, top, width, height
self.setGeometry(left, top, width, height)
self.fileMenu()
self.show()
def mediumSize(self):
left, top, width, height = self.mediumGeometry
self.setFixedWidth(width)
self.setFixedHeight(height)
#
frameGeometry = self.frameGeometry()
#frameGeometry = QRect(0, 0, width, height)
print('frameGeometry', frameGeometry)
centerPoint = QDesktopWidget().availableGeometry().center()
print('centerPoint', centerPoint)
frameGeometry.moveCenter(centerPoint)
self.move(frameGeometry.topLeft())
def fileMenu(self):
mainMenu = self.menuBar()
menus = {
'Edit' : [
['Minimieren', self.showMinimized],
['Normal', self.mediumSize],
['Maximieren', self.showMaximized],
]
}
for menu in menus:
Menu = mainMenu.addMenu(menu)
for menuText, function in menus[menu]:
action = QAction(menuText, self)
action.triggered.connect(function)
Menu.addAction(action)
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
Grüße Nobuddy