[英]QButtonGroup setExclusive() issue
我試圖通過排他檢查將一些QPushButton分組到QButtonGroup中,但是啟動后我仍然可以檢查多個按鈕。
// pen toggle button
penB.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
penB.setIconSize(QSize(ICON_SIZE,ICON_SIZE));
penB.setCheckable(true);
penB.toggle();
penB.setIcon(QIcon(":icons/pen.png"));
// circle toggle button
circleB.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
circleB.setIconSize(QSize(ICON_SIZE,ICON_SIZE));
circleB.setCheckable(true);
circleB.setIcon(QIcon(":icons/circle.png"));
figureBox.addButton(&penB);
figureBox.addButton(&circleB);
figureBox.setExclusive(true);
// add buttons to grid
layoutG.addWidget(&openB,1,1);
layoutG.addWidget(&saveB,1,2);
layoutG.addWidget(&penB,1,3);
layoutG.addWidget(&circleB,2,3);
我認為,它只需要進行一些事件即可。 如果它是真的,那到底是哪個事件? 提前致謝。
我試圖復制您的示例,對我來說,它可以正常運行:
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QButtonGroup>
#include <QGridLayout>
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
QGridLayout layoutG;
QButtonGroup figureBox;
QPushButton openB;
QPushButton saveB;
QPushButton penB;
QPushButton circleB;
};
#endif // WIDGET_H
widget.cpp:
#include "widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent)
{
// pen toggle button
penB.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
penB.setIconSize(QSize(16, 16));
penB.setCheckable(true);
penB.toggle();
// circle toggle button
circleB.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
circleB.setIconSize(QSize(16, 16));
circleB.setCheckable(true);
figureBox.addButton(&penB);
figureBox.addButton(&circleB);
figureBox.setExclusive(true);
// add buttons to grid
layoutG.addWidget(&openB,1,1);
layoutG.addWidget(&saveB,1,2);
layoutG.addWidget(&penB,1,3);
layoutG.addWidget(&circleB,2,3);
setLayout(&layoutG);
}
Widget::~Widget()
{
}
在您的代碼中可能無法完成的一件事是,我看不到您在哪里設置布局,但是出於簡單的原因,也許您沒有添加代碼。 另一件事是,只有排除按鈕將penB
和circleB
。
查看我的示例,看看您在做什么錯,並可能會反饋。
對不起大家。 它該睡覺了。 我忘了在.h文件中聲明QButtonGroup,它是在本地函數中聲明的,所以只是內存泄漏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.