Pyside GUI 函数覆盖问题
Pyside GUI function overwrite issue
我正在学习在 PySide 中制作 GUI。
如何调整 QHBoxLayout() 中按钮的大小?我试过 button_1.setFixedWidth() 和 button_1.setFixedHeight() 这些使按钮不可缩放。 button_1.move() 也不起作用。
我还创建了一个具有 Qlabel 和 QLineEdit 的函数 angles(),当我 运行 程序时,按钮函数覆盖了角度函数以仅显示按钮GUI 的右上角。
以及如何调整 QLineEdit 的长度使其不扩展整个window?
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_())
如果要调整大小,请使用:button_1.setFixedSize({your scale}*button_1.size())
makebuttons 函数通过删除以上所有内容创建另一个 centralWidget,因此您将看不到您对角度所做的操作。
要更改 QLineEdit
的宽度,请使用 {your QlineEdit} .setFixedWidth({your width})
我使用 Qt Designer 来完成我所有的 Pyside GUI 工作,即使它是一个相当琐碎的程序。它不仅仅是一个拖放式 WYSISYG 工具。对于示例中的按钮之类的东西,您将看到一个可配置属性列表,包括按钮的大小参数以及配置布局的能力。
因此,我的解决方案是在 QT Designer 中创建您的 GUI,然后在使用 pyside-uic
工具将代码转换为 [=11= 之前修改那里的布局].然后只需将生成的 python
模块导入您的代码。从那里您仍然可以在以后的代码中重新配置您想要的任何内容,例如,如果您需要在程序运行期间更改 GUI 的外观。
我正在学习在 PySide 中制作 GUI。
如何调整 QHBoxLayout() 中按钮的大小?我试过 button_1.setFixedWidth() 和 button_1.setFixedHeight() 这些使按钮不可缩放。 button_1.move() 也不起作用。
我还创建了一个具有 Qlabel 和 QLineEdit 的函数 angles(),当我 运行 程序时,按钮函数覆盖了角度函数以仅显示按钮GUI 的右上角。
以及如何调整 QLineEdit 的长度使其不扩展整个window?
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_())
如果要调整大小,请使用:
button_1.setFixedSize({your scale}*button_1.size())
makebuttons 函数通过删除以上所有内容创建另一个 centralWidget,因此您将看不到您对角度所做的操作。
要更改
QLineEdit
的宽度,请使用{your QlineEdit} .setFixedWidth({your width})
我使用 Qt Designer 来完成我所有的 Pyside GUI 工作,即使它是一个相当琐碎的程序。它不仅仅是一个拖放式 WYSISYG 工具。对于示例中的按钮之类的东西,您将看到一个可配置属性列表,包括按钮的大小参数以及配置布局的能力。
因此,我的解决方案是在 QT Designer 中创建您的 GUI,然后在使用 pyside-uic
工具将代码转换为 [=11= 之前修改那里的布局].然后只需将生成的 python
模块导入您的代码。从那里您仍然可以在以后的代码中重新配置您想要的任何内容,例如,如果您需要在程序运行期间更改 GUI 的外观。