我正在学习在PySide中制作GUI。
如何重新调整QHBoxLayout()内的按钮?我尝试了button_1.setFixedWidth()和button_1.setFixedHeight()这些使按钮不可伸缩。 button_1.move()也不起作用。
我还创建了一个具有Qlabel和QLineEdit的函数angle(),当我运行程序时,按钮功能覆盖了角度函数,只显示GUI右上角的按钮。
如何调整QLineEdit的长度并使其不延伸整个窗口?
import sys
from PySide.QtGui import *
from PySide.QtCore import *
class MainWindow(QMainWindow):
#GUI Layout
def __init__(self,parent = None):
super(MainWindow, self).__init__(parent)
widget = QWidget()
self.setCentralWidget(widget)
self.setWindowTitle("Example")
self.setGeometry(400, 100, 1500, 800)
self.angles()
self.makebuttons()
def angles(self):
central_widget = QWidget()
self.setCentralWidget(central_widget)
Rotation = QLabel('Rotation:')
Tilt = QLabel('Tilt:')
RoatationEdit = QLineEdit()
TiltEdit = QLineEdit()
grid = QGridLayout()
grid.setSpacing(2)
grid.addWidget(Rotation,1,0)
grid.addWidget(RoatationEdit, 1, 1)
grid.addWidget(Tilt,2,0)
grid.addWidget(TiltEdit, 2, 1)
central_widget.setLayout(grid)
def makebuttons(self):
central_widget = QWidget()
self.setCentralWidget(central_widget)
hbox = QHBoxLayout()
button_1 = QPushButton("Button 1",self)
button_1.move(0,30)
hbox.addStretch(1)
button_2 = QPushButton("Button 2",self)
hbox.addStretch(1)
hbox.addWidget(button_1)
hbox.addWidget(button_2)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
central_widget.setLayout(vbox)
# central_widget.addLayout(vbox)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
答案 0 :(得分:0)
如果您想调整使用大小:button_1.setFixedSize({your scale}*button_1.size())
makebuttons函数通过删除以上所有内容创建另一个centralWidget,因此您无法看到您对角度所做的操作。
要更改QLineEdit
的宽度,请使用{your QlineEdit} .setFixedWidth({your width})
答案 1 :(得分:0)
我使用 Qt Designer 来完成我的所有 Pyside GUI工作,即使它是一个相当简单的程序。它不仅仅是一个拖放式WYSISYG工具。对于示例中的按钮之类的东西,您将看到一个可配置属性列表,包括按钮的大小调整参数以及配置布局的功能。
因此,我的解决方案是在 QT Designer 中创建GUI,然后在使用pyside-uic
工具将代码转换为python
之前修改其布局。然后只需将生成的python
模块导入到您的代码中。从那里开始,您仍然可以在代码中重新配置您想要的任何内容,例如,您需要在程序过程中更改GUI的外观。