如何在qt中使用checkbox时,只有点击选择框时才选中,点击checkbox的文本时不选中?

如何在qt中使用checkbox时,只有点击选择框时才选中,点击checkbox的文本时不选中?

这个不难啊

绑定一下

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7694962
  • 这篇博客也不错, 你可以看下Qt中改变checkbox的大小
  • 除此之外, 这篇博客: Qt 在菜单栏加入 CheckBox中的 代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    // .h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QCheckBox>
    #include <QWidgetAction>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
        void on_actionShow_toggled(bool arg1);
        void checkbox_clicked(bool arg1);
    
    private:
        Ui::MainWindow *ui;
        QCheckBox *m_checkbox;
    };
    #endif // MAINWINDOW_H
    
    // .cpp
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow), m_checkbox(new QCheckBox(this))
    {
        ui->setupUi(this);
        ui->actionShow->setCheckable(true);
    	
    	// QWidgetAction
        m_checkbox->setText("Check");
        QWidgetAction *action = new QWidgetAction(this);
        action->setDefaultWidget(m_checkbox);
        ui->menuFile->addActions(QList<QAction*>() << (qobject_cast<QAction*>(action))); // 没有直接加 QAction 的接口,只能绕一下
        connect(m_checkbox, SIGNAL(clicked(bool)), this, SLOT(checkbox_clicked(bool)));
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_actionShow_toggled(bool arg1)
    {
        QString text = arg1 ? "Show" : "Not show";
        ui->label->setText(text);
    }
    
    void MainWindow::checkbox_clicked(bool arg1)
    {
        QString text = arg1 ? "CheckBox Show" : "CheckBox not show";
        ui->label->setText(text);
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^