-1

我是QT的新手。我正在使用 Qt Designer 创建一个 ui 文件,然后编写 Python 代码以使事情发生。我有一个 QSlider,在 python 代码中,当滑块的值随之改变时,我可以采取行动:

widget = QWidget()
widget.mySlider.valueChanged[int].connect(myChangeMethod)

或者我用它来访问 QSlider 的值

widget.mySlider.value()

如果我在 QSlider 周围添加 QGroupBox,则无法在 GUI 中滑动 QSlider。当被 QGroupBox 包围时,我怎样才能让 QSlider 工作,这意味着我可以移动滑块并在我的代码中使用 .valueChanged 或 .value() ?

提前致谢!

更新:这是 .ui 文件:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <widget class="QSlider" name="mySlider">
   <property name="geometry">
    <rect>
     <x>90</x>
     <y>100</y>
     <width>221</width>
     <height>16</height>
    </rect>
   </property>
   <property name="toolTip">
    <string>No Comment</string>
   </property>
   <property name="minimum">
    <number>0</number>
   </property>
   <property name="maximum">
    <number>10</number>
   </property>
   <property name="singleStep">
    <number>1</number>
   </property>
   <property name="orientation">
    <enum>Qt::Horizontal</enum>
   </property>
   <property name="tickPosition">
    <enum>QSlider::TicksBelow</enum>
   </property>
   <property name="tickInterval">
    <number>1</number>
   </property>
  </widget>
  <widget class="QGroupBox" name="groupBox">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>20</y>
     <width>381</width>
     <height>171</height>
    </rect>
   </property>
   <property name="title">
    <string>MyGroup</string>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>
4

1 回答 1

0

你知道,这么多人要求一个完整的例子的原因是盲目驾驶并不好玩。

我不“做 python”,因为我更喜欢静态类型语言。

使用 DuckDuckGo 进行快速搜索会产生以下结果:

https://pythonbasics.org/pyqt-groupbox/

https://realpython.com/qt-designer-python/#building-main-windows-with-qt-designer-and-python

您的 UI 文件看起来非常糟糕。你用的是什么版本的Qt???

添加 groupbox 后,所有内容都应该添加到 groupbox 中。您的 UI 文件中显示的是 GroupBox 涵盖了所有内容,您的非静态类型语言无法访问现在“逻辑隐藏”在 GroupBox 下的内容。是否可以“看到”它并不重要,因为根据图层和引擎它不是“可见的”。

路径应该

widget.groupBox.mySlider

但是根据您的 UI 文件 groupBox 不是任何东西的父母,但它是您的大部分小部件并最后添加,因此“应该”在其他所有内容之上。

请通读教程。

于 2022-02-02T20:01:04.887 回答