小部件位置和窗口大小

坎马尼

我是 GUI 开发的新手,我正在尝试学习如何pyqt5在 python 中使用下面是我正在处理的示例代码。我想要一个窗口,窗口右侧有一些复选框、组合框和单选按钮。QtWidget对象的详细信息在代码中。

from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QWidget, QPushButton, QComboBox, QRadioButton, QVBoxLayout, QCheckBox
from PyQt5.QtGui import QIcon

class App(QMainWindow):

    def __init__(self):
        super().__init__()
        self.left = 0
        self.top = 500
        self.title = 'Chip2 Torque Data'
        self.width = 500
        self.height =500
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        xselect=QRadioButton("X",self)
        xselect.setChecked(True)

        xselect.move(340,400)
        zselect=QRadioButton("Z",self)
        zselect.move(380,400)
        sselect=QRadioButton("SP1",self)
        sselect.move(420,400)
        pass_list=QComboBox(self)
        pass_list.addItems(sheets_idealcut)
        pass_list.move(340,300)
        rawdata_check=QCheckBox("Raw Data",self)
        rawdata_check.setChecked(True)
        rawdata_check.move(340,200)
        mvgavg_check=QCheckBox("Moving average",self)
        mvgavg_check.setChecked(True)
        mvgavg_check.move(380,200)
        mvgstd_check=QCheckBox("Moving stdev",self)
        mvgstd_check.setChecked(True)
        mvgstd_check.move(420,200)
        self.show()
if __name__ == '__main__':
  sheets_idealcut=['pass2','pass3','pass4','pass5']

    app = QApplication.instance()
    if app is None:
         app = QApplication(sys.argv)
    else:
        print('QApplication instance already exists: %s' % str(app))
    ex = App()
    #ex.show()
    app.exec_()

下面是代码的输出。(请忽略重叠的复选框名称。我打算稍后更正。)

在此处输入图片说明

我的问题是,当我最大化此窗口中,QtWidget对象(QComboBoxQRadioButtonQCheckBox)不要调整自己与新的窗口大小位置。
在此处输入图片说明

那么对于小部件自动重新定位自己,应该使用什么方法?

我用谷歌搜索但我找不到任何有用的东西。

请帮忙。

马格努斯王 |

您应该使用布局进行动态调整大小。有很多不同的布局。本例中使用的布局是最基本的类型。我还将“App”的父级更改为 QDialog。它们更容易处理。

这是您的应用程序示例,使用布局:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QWidget, QPushButton, QComboBox, QRadioButton, \
QVBoxLayout, QCheckBox, QHBoxLayout, QGroupBox, QDialog
from PyQt5.QtGui import QIcon

class App(QDialog):

    def __init__(self):
        super().__init__()
        self.left = 0
        self.top = 500
        self.title = 'Chip2 Torque Data'
        self.width = 500
        self.height = 500
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.main_layout = QVBoxLayout()

        xselect=QRadioButton("X",self)
        xselect.setChecked(True)
        # xselect.move(340,400)
        self.main_layout.addWidget(xselect)

        zselect=QRadioButton("Z",self)
        # zselect.move(380,400)
        self.main_layout.addWidget(zselect)

        sselect=QRadioButton("SP1",self)
        # sselect.move(420,400)
        self.main_layout.addWidget(sselect)



        pass_list=QComboBox(self)
        pass_list.addItems(sheets_idealcut)
        self.main_layout.addWidget(pass_list)
        #pass_list.move(340,300)
        rawdata_check=QCheckBox("Raw Data",self)
        rawdata_check.setChecked(True)
        self.main_layout.addWidget(rawdata_check)
        #rawdata_check.move(340,200)
        mvgavg_check=QCheckBox("Moving average",self)
        mvgavg_check.setChecked(True)
        #mvgavg_check.move(380,200)
        mvgstd_check=QCheckBox("Moving stdev",self)
        mvgstd_check.setChecked(True)
        #mvgstd_check.move(420,200)

        self.check_group = QHBoxLayout()
        self.check_group.addWidget(mvgavg_check)
        self.check_group.addWidget(mvgstd_check)
        self.check_group.stretch(1)

        self.main_layout.addLayout(self.check_group)
        self.setLayout(self.main_layout)
        self.show()

if __name__ == '__main__':
    sheets_idealcut=['pass2','pass3','pass4','pass5']

    app = QApplication.instance()
    if app is None:
         app = QApplication(sys.argv)
    else:
        print('QApplication instance already exists: %s' % str(app))
    ex = App()
    #ex.show()
    app.exec_()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据父窗口小部件的宽度和高度放置自动调整大小的窗口小部件

来自分类Dev

QMainWindow和子窗口小部件的大小不匹配

来自分类Dev

如何根据特定位置和大小在QNX上显示Qt(窗口小部件)应用程序?

来自分类Dev

窗口大小不会扩展窗口小部件

来自分类Dev

调整窗口大小而不覆盖小部件

来自分类Dev

检索窗口大小和小部件大小时遇到问题

来自分类Dev

如何在动态窗口小部件中获取QGraphicsView的正确位置,宽度和高度

来自分类Dev

PyQt:如何设置窗口大小以匹配小部件大小?

来自分类Dev

Kivy-创建新的小部件并设置其位置和大小

来自分类Dev

swiftui形状的自适应框架(窗口小部件)大小

来自分类Dev

如何获取锁屏窗口小部件区域的大小?

来自分类Dev

防止QLabel调整父窗口小部件的大小

来自分类Dev

调整父窗口小部件的大小时,通过保持宽高比来调整子窗口小部件的大小

来自分类Dev

如何在主窗口的中心位置打开QDialog小部件

来自分类Dev

如何在Column中更改子窗口小部件的位置?

来自分类Dev

默认窗口大小和位置

来自分类Dev

如何根据屏幕大小抖动设置小部件位置

来自分类Dev

隐藏小部件后如何仍可调整窗口大小,如何调整窗口大小?

来自分类常见问题

窗口小部件打开应用程序时,该应用程序是否可以知道窗口小部件的大小

来自分类Dev

窗口小部件打开应用程序时,该应用程序是否可以知道窗口小部件的大小

来自分类Dev

商店小部件位置

来自分类Dev

LibGdx小部件位置

来自分类Dev

Python Tkinter框架窗口小部件选项(可视和类)

来自分类Dev

样式化的跨平台本机小部件和窗口

来自分类Dev

无法隐藏和显示窗口小部件以响应事件

来自分类Dev

Tkinter文本中的行号和只读窗口小部件代理

来自分类Dev

Flutter:在堆栈小部件中动态添加和拖放任何位置的小部件

来自分类Dev

Tk 文本小部件 - 获得新的行和字符大小

来自分类Dev

KDE 小部件 - 图标大小和父项的问题

Related 相关文章

  1. 1

    根据父窗口小部件的宽度和高度放置自动调整大小的窗口小部件

  2. 2

    QMainWindow和子窗口小部件的大小不匹配

  3. 3

    如何根据特定位置和大小在QNX上显示Qt(窗口小部件)应用程序?

  4. 4

    窗口大小不会扩展窗口小部件

  5. 5

    调整窗口大小而不覆盖小部件

  6. 6

    检索窗口大小和小部件大小时遇到问题

  7. 7

    如何在动态窗口小部件中获取QGraphicsView的正确位置,宽度和高度

  8. 8

    PyQt:如何设置窗口大小以匹配小部件大小?

  9. 9

    Kivy-创建新的小部件并设置其位置和大小

  10. 10

    swiftui形状的自适应框架(窗口小部件)大小

  11. 11

    如何获取锁屏窗口小部件区域的大小?

  12. 12

    防止QLabel调整父窗口小部件的大小

  13. 13

    调整父窗口小部件的大小时,通过保持宽高比来调整子窗口小部件的大小

  14. 14

    如何在主窗口的中心位置打开QDialog小部件

  15. 15

    如何在Column中更改子窗口小部件的位置?

  16. 16

    默认窗口大小和位置

  17. 17

    如何根据屏幕大小抖动设置小部件位置

  18. 18

    隐藏小部件后如何仍可调整窗口大小,如何调整窗口大小?

  19. 19

    窗口小部件打开应用程序时,该应用程序是否可以知道窗口小部件的大小

  20. 20

    窗口小部件打开应用程序时,该应用程序是否可以知道窗口小部件的大小

  21. 21

    商店小部件位置

  22. 22

    LibGdx小部件位置

  23. 23

    Python Tkinter框架窗口小部件选项(可视和类)

  24. 24

    样式化的跨平台本机小部件和窗口

  25. 25

    无法隐藏和显示窗口小部件以响应事件

  26. 26

    Tkinter文本中的行号和只读窗口小部件代理

  27. 27

    Flutter:在堆栈小部件中动态添加和拖放任何位置的小部件

  28. 28

    Tk 文本小部件 - 获得新的行和字符大小

  29. 29

    KDE 小部件 - 图标大小和父项的问题

热门标签

归档