我正在使用PyQt创建桌面应用程序。我正在尝试使用hbox和vbox创建一个按钮,但除非我提供特定的命令,否则它不会显示:
button1 = QtGui.QPushButton("Exit", self)
但是,通过这样做,vbox和hbox功能似乎不起作用。 我需要按钮位于窗口的右下角,即使在调整窗口大小后也会停留在那里。 使用此代码,它位于左上角。
from PyQt4 import QtGui, QtCore
import sys
class Trial(QtGui.QMainWindow):
def __init__(self):
super(Trial,self).__init__()
self.createUI()
def createUI(self):
button1 = QtGui.QPushButton("Exit",self)
button1.clicked.connect(self.close)
hbox = QtGui.QHBoxLayout()
hbox.addStretch(1) #stretches it to the right end of the page
hbox.addWidget(button1)
vbox = QtGui.QVBoxLayout()
vbox.addStretch(1) #stretches it to the bottom end of the page
vbox.addLayout(hbox)
self.setLayout(vbox)
button1.resize(button1.sizeHint())
self.setGeometry(300,200,750,450)
self.setWindowTitle('Testing')
self.show()
def main():
app= QtGui.QApplication(sys.argv)
w=Trial()
sys.exit(app.exec_())
if __name__=='__main__':
main()
如果我使用button1.move(420, 400)
,它会将按钮移动到我想要的位置,但是当我重新调整应用程序窗口大小时它不会停留在那里。
答案 0 :(得分:0)
示例代码不起作用,因为您尝试在主窗口上设置布局,该窗口已经有布局。
相反,您需要添加一个中央窗口小部件,然后在其上设置布局:
def createUI(self):
self.setCentralWidget(QtGui.QWidget(self))
...
vbox.addLayout(hbox)
self.centralWidget().setLayout(vbox)
self.setGeometry(300,200,750,450)
...