QT开发中文网

使用Qt开发界面在myWidget的工具栏上加入两个按钮,在myWidget中加入stackwidget存放中心界面,这两个界面存在于不同的文件夹中,从stackWidget中调用myWidget上的两个按钮,怎么进行操作

  1. 在myWidget的头文件中声明两个按钮,如:
class MyWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MyWidget(QWidget *parent = nullptr);
    ~MyWidget();

private:
    QPushButton *button1;
    QPushButton *button2;

    //...
};
  1. 在myWidget的构造函数中创建这两个按钮,并将它们添加到工具栏中,如:
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent)
{
    //...

    button1 = new QPushButton("Button 1");
    button2 = new QPushButton("Button 2");

    QToolBar *toolBar = new QToolBar(this);
    toolBar->addWidget(button1);
    toolBar->addSeparator();
    toolBar->addWidget(button2);

    //...
}
  1. 创建中心界面,如:
class CenterWidget : public QWidget
{
    Q_OBJECT

public:
    explicit CenterWidget(QWidget *parent = nullptr);
    ~CenterWidget();

private:
    //...
};
  1. 在myWidget中创建stackWidget,并将中心界面添加到其中,如:
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent)
{
    //...

    CenterWidget *centerWidget = new CenterWidget(this);

    QStackedWidget *stackedWidget = new QStackedWidget(this);
    stackedWidget->addWidget(centerWidget);

    //...
}
  1. 在CenterWidget中通过信号与槽来调用按钮的操作,如:
CenterWidget::CenterWidget(QWidget *parent) :
    QWidget(parent)
{
    //...

    connect(button1, &QPushButton::clicked, this, [=]() {
        // 按钮1的操作
    });

    connect(button2, &QPushButton::clicked, this, [=]() {
        // 按钮2的操作
    });

    //...
}
  1. 在myWidget中通过setCurrentIndex()方法来切换到CenterWidget,如:
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent)
{
    //...

    button1 = new QPushButton("Button 1");
    button2 = new QPushButton("Button 2");

    QToolBar *toolBar = new QToolBar(this);
    toolBar->addWidget(button1);
    toolBar->addSeparator();
    toolBar->addWidget(button2);

    CenterWidget *centerWidget = new CenterWidget(this);

    QStackedWidget *stackedWidget = new QStackedWidget(this);
    stackedWidget->addWidget(centerWidget);

    connect(button1, &QPushButton::clicked, stackedWidget, [=]() {
        stackedWidget->setCurrentIndex(0); // 切换到CenterWidget
    });

    //...
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=910

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?