[Warning]QWindowsWindow::setGeometry: Unable to set geometry
1946x1017+0+23 on QWidgetWindow/‘…’. Resulting geometry:
1920x1017+0+23 (frame: 8, 31, 8, 8, custom margin: 0, 0, 0, 0, minimum
size: 1946x953, maximum size: 16777215x16777215).

窗口某些部件,设置setGeometry的大小,超出主窗口的屏幕区域,会出现当前窗口超出当前屏幕的大小。

设置主窗口的最小尺寸。

setMinimumSize(QSize(1200, 600));
setWindowState(Qt::WindowMaximized);
				
博主,自己的程序突然报了一种错误如下 setGeometry: Unable to set geometry 1420x1421+8+31 on QWidgetWindow/'MainWindowWindow'. Resulting geometry: 1420x1181+8+31 (frame: 8, 31, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 1376x1072, maximum size: 16777215x16777215). # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'layoutWin.ui' # Created by: PyQt5 UI code generator 5.8.1 # WARNING! All changes made i...
class Calender(QtGui.QWidget): def __init__(self,parent = None): QtGui.QWidget.__init__(self,parent) self.setGeometry(300,300,350,300) self.setWindowTitle("Calendar") self.cal = QtGui.QCalendarWidget(self) self.cal.setGridVisible(True) self.connect(self.cal,QtCore.SIGNAL("selectionChanged()"),self.showDate) self.label = QtGui.QLabel(self) date = self.cal.selectedDate() self.label.setText(str(date.toPyDate())) vbox = QtGui.QVBoxLayout() vbox.addWidget(self.cal) vbox.addWidget(self.label) self.setLayout(vbox) def showDate(self): date = self.cal.selectedDate() self.label.setText(str(date.toPyDate())) app = QtGui.QApplication(sys.argv) w = Calender() w.show() sys.exit(app.exec_())
本例设置为垂直左侧scroll 主要思想是利用一个长度为0的mid_frame,高度为待设置qwidget的高度,用mid_frame的moveEvent事件驱动qwidget的move 我项目的效果图: 代码及注释 from PyQt5.Qt import * from sys import argv # 主窗口 class Main(QMainWindow): def __init__(self): super().__init__(None) self.setGeometry(500, 500, 500, 500) # 实例化 self.main
由于子窗口和父窗口的大小关系不健康,导致父窗口resize失败,失败后会自定义大小 解决方法: 首先,修改父窗口尺寸,保证其大小可以容纳子部件,可以使用setFixSize()之类的函数修改父窗口尺寸。 其次,一定要保证修改父窗口尺寸的函数是放在窗口布局代码之前,如图,我的setInterface()函数内是对窗口布局,若this->setFixSize(QSize(1200,800));函数在setInterface()后面,则还是会报这个错误,只需要将函数位置换一下即可