【问题标题】:Why does QPushButton not respect absolute pixel size?为什么 QPushButton 不尊重绝对像素大小?
【发布时间】:2021-04-04 03:11:18
【问题描述】:

我正在开发一个在带有触摸 LCD 屏幕的嵌入式设备上运行的应用程序。对于开发设置,我设置了一个 Xephyr 窗口,带有相同分辨率 (1280x800) 的火柴盒 WM。

我已经开发了一个客户下拉菜单,它将向下扩展病房并显示选择按钮,在我的开发系统上,这看起来像 9 设计的那样)是这样的:

在终端设备上,按钮填满整个窗口,如下所示:

功能似乎在那里,但即使固定像素大小用于按钮大小,它似乎也占用了整个窗口的空间。它们的“下拉”按钮是从如下列表创建的:

btn_size = QtCore.QSize(206,57)

        for n in btnlist:
            _name = str(n)
            self.drpbtns.append(QtGui.QPushButton(_name))
            self.drpbtns[i].clicked.connect(lambda checked, v=_name: func(v))
            self.drpbtns[i].resize(btn_size)
            self.drpbtns[i].move(x,y+(i*(self.drpbtns[i].height()-1)))
            self.drpbtns[i].setStyleSheet('background-color: rgb(255,255,255); \
                                           border: 1px solid rgb(216,216,216); \
                                           color: rgb(92,92,92); \
                                           font: bold 22pt "Avenir"')
            self.drpbtns[i].setFlat(True)


            i = i+1

为什么按钮不遵守分配的QSize()

我已经在Qt Forum 中启动了一个新线程,并将确保在两个线程之间交叉填充回复!

【问题讨论】:

  • resize改成setFixedSize
  • @eyllanesc 就这样吗?不幸的是,我要到星期一才能测试/验证它。像往常一样,非常感谢您的反馈!谢谢!
  • 没有更多上下文很难给你一个更全面的答案,但如果你将这些按钮添加到布局中,尝试设置大小(除非设置了大小约束)和位置完全没用:它们被称为布局管理器,因为它们管理布局,它们决定小部件应该放在哪里以及它们应该有多大。这也意味着如果您正在使用布局,虽然设置固定大小会起作用,但移动不会。如果您仍然面临类似的问题,我建议您编辑您的问题并提供一个最小的可重现示例。
  • 虽然事实证明setFixedSize() 并没有真正解决问题(按钮仍然会爆炸以覆盖整个可见空间),但我可以说布局正在下方使用,我只是想为这个自定义的“下拉小部件”使用修复定位按钮。下次去办公室时,我将不得不研究一个最小的可重现示例(因为我目前无法访问让我复制此问题的模拟单元)....还有什么我可以尝试的吗同时出去?
  • 在此示例中调整可见区域的大小不是问题,因为我们固定使用 1280x800 LCD 显示器,并且用户根本无法调整可见区域的大小(全屏触摸界面)

标签: resize pyqt4 qpushbutton


【解决方案1】:

事实证明,我在这里找到了解决问题的方法:https://forum.qt.io/topic/78752/how-to-place-widgets-by-specifying-positions-in-qframe

我更改了我的 QPushButton 行以包含解决问题的父级:self.drpbtns.append(QtGui.QPushButton(_name,self.parent))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2012-12-22
    • 1970-01-01
    • 2013-10-17
    • 2015-03-14
    相关资源
    最近更新 更多