我创建了一个简单的 UI,其中包含QGroupBox
一堆QRadioButtons
(确切地说是 32 个),我希望能够找到所选的一个。
我查看了论坛和其他东西,但我找到的答案不起作用,并且一个参考文档涉及一种不存在的QGroupBox
.
鉴于以下代码片段,我将如何找到选定的QRadioButton
(如果有)?
QGroupBox* thingGroup = ui->thingGroupBox;
Run Code Online (Sandbox Code Playgroud) 我正在尝试调整 PyQt 中单选按钮小部件的按钮和文本的大小,但没有成功尝试同时执行这两项操作。
用这段代码:
radioButton = QRadioButton(options[x]['desc'])
radioButton.setStyleSheet('font: 16pt Helvetica MS; QRadioButton::indicator { width: 30px; height: 30px;};')
Run Code Online (Sandbox Code Playgroud)
我明白了:
小按钮,大文字
但是当我这样做时:
radioButton = QRadioButton(options[x]['desc'])
radioButton.setStyleSheet('QRadioButton::indicator { width: 30px; height: 30px;};')
Run Code Online (Sandbox Code Playgroud)
我明白了:
大按钮,小文字
那么组合语句以获得大按钮/大文本组合的正确方法是什么?
我想获得QPushButton
MainWindow 中的所有列表.实际上,我有一个QRadioButton
,当我取消选中它时,我想禁用QPushButton
我的所有窗口.
我怎样才能做到这一点 ?
我有单选按钮的问题.
我已经创建了一个带有两个单选按钮的组合框并将其设置为独占按钮,因此当选中一个时,另一个未选中.
当我检查一个它连接到一个槽作为一个函数,所以它做一个动作,更具体地说,改变比例并从Slider转换值.
问题是当我错误地点击已经检查过的按钮时,因为即使它已经检查它仍然连接到该功能并且滑块的值再次改变,这是我不想要的.
这是他们的代码:
//Conect change from MM or PIXEL, making the change in the scale
connect(ui->radioButton, SIGNAL(pressed())), this, SLOT(mm()));
connect(ui->radioButton_2, SIGNAL(pressed()), this, SLOT(pixel()));
Run Code Online (Sandbox Code Playgroud)
有没有办法在之前已经检查过时阻止它?
我将在这里发布mm()和pixel()函数:
// Function to transform the slider scale from pixel to mm
void planevolume::mm()
{
// Set the sliders ranges and connections
// X Slider
double xvaluem=ui->Slider->value();
ui->Slider->setRange(xmin, xmax/(256.0/3.0), 1.0/(256.0/3.0));
ui->Slider->setValue(xvaluem/(256.0/3.0));
ui->Slider->setScale(xmin, (xmax+1.0)/(256.0/3.0), ((xmax+1.0)/16.0)/(256.0/3.0));
connect(ui->Slider, SIGNAL(valueChanged(double)), ui->lcdNumber, SLOT(display(double)));
// Y Slider
double yvaluem=ui->Slider_2->value();
ui->Slider_2->setRange(ymin, ymax/(512.0), 1.0/(512.0));
ui->Slider_2->setValue(yvaluem/(512.0));
ui->Slider_2->setScale(ymin, (ymax+1.0)/512.0, (((ymax+1.0)/16.0)/512.0));
connect(ui->Slider_2, SIGNAL(valueChanged(double)), ui->lcdNumber_2, SLOT(display(double))); …
Run Code Online (Sandbox Code Playgroud) 对于这个问题,我指的是@Andy PyQt Tree Widget的答案,添加了动态删除复选框
@Andy 展示了如何添加CheckBox
到 中QTreeWidget
,效果很好。
我想在这里问,如何添加RadioButton
到QTreeWidget
?----而且,这对我来说更困难,如何使只有一个项目可供选择,尽管它们不同groups
?
我将@Andy 中的代码重写为 PyQt5:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
def main():
app = QApplication (sys.argv)
tree = QTreeWidget ()
headerItem = QTreeWidgetItem()
item = QTreeWidgetItem()
for i in range(3):
parent = QTreeWidgetItem(tree)
parent.setText(0, "Parent {}".format(i))
parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
for x in range(5):
child = QTreeWidgetItem(parent)
child.setFlags(child.flags() | Qt.ItemIsUserCheckable) …
Run Code Online (Sandbox Code Playgroud) 我知道很多人都问过这个问题.我也在这里搜索过它.最简单的解决方案之一是样式表:
QRadioButton {
background-color: rgb(252,254,252);
color: black;
}
QRadioButton::indicator {
width: 11px;
height: 11px;
border-radius: 5px;
}
QRadioButton::indicator::unchecked{
border: 1px solid;
border-color: rgb(132,132,132);
border-radius: 5px;
background-color: white;
width: 11px;
height: 11px;
}
QRadioButton::indicator::checked{
border: 3px solid;
border-color: white;
border-radius: 6px;
background-color: rgb(0,116,188);
width: 7px;
height: 7px;
}
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,结果就像这样
(按钮只有白色圆形边框,内部为蓝色圆形).但是,我们可以在它们之外制作黑色边框,就像标准的单选按钮一样
?(黑色边框 - >白色边框 - >蓝色圆形).我们可以在Qt中做到吗?
qradiobutton ×6
qt ×4
c++ ×2
pyqt ×2
pyqt5 ×2
python ×2
css ×1
qgroupbox ×1
qpushbutton ×1
qstylesheet ×1
qt5 ×1
qtreewidget ×1