返回信息流求助万能的北邮人!
我写了个简单的界面,一个PushButton一个CheckBox和一个Label。我想做的是当按钮被按下时,如果CheckBox被选中,Label显示Hello,否则显示World。
由于我没用ui design,所以能否在不把这几个QWidget加到mainwindow的成员的情况下完成这件事。很困惑SLOT怎么写。。多谢各位大神了!
这是一条镜像帖。来源:北邮人论坛 / cpp / #77379同步于 2014/3/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
Qt checkbox信号槽求助
AsPolaris
2014/3/12镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
没用ui design不影响槽函数的编写,可以把那几个widget的指针作为MainWindow类的成员变量,然后写一个槽函数完成你的工作,再connect一下就可以了。
如果“不把这几个QWidget加到mainwindow的成员”是必须要求的话,并且用的是Qt5,那可以写一个lambda表达式当做槽函数。
【 在 AsPolaris 的大作中提到: 】
: 求助万能的北邮人!
: 我写了个简单的界面,一个PushButton一个CheckBox和一个Label。我想做的是当按钮被按下时,如果CheckBox被选中,Label显示Hello,否则显示World。
: 由于我没用ui design,所以能否在不把这几个QWidget加到mainwindow的成员的情况下完成这件事。很困惑SLOT怎么写。。多谢各位大神了!
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void setLabel();
private:
QCheckBox* check;
QPushButton* button;
QLabel* label;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QWidget *centerWindow = new QWidget;
this->setCentralWidget(centerWindow);
button = new QPushButton("click me", this);
check = new QCheckBox(this);
label = new QLabel(this);
check->setCheckable(true);
QHBoxLayout *layout=new QHBoxLayout(centerWindow);
layout->addWidget(button);
layout->addWidget(check);
layout->addWidget(label);
connect(button,SIGNAL(clicked()),this,SLOT(setLabel()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::setLabel()
{
if(check->isChecked())
{
label->setText("<h2><b>hello</b></h2>");
}else
{
label->setText("<h2><b><font color=red>world!</font></b></h2>");
}
}
【 在 AsPolaris 的大作中提到: 】
: 求助万能的北邮人!
: 我写了个简单的界面,一个PushButton一个CheckBox和一个Label。我想做的是当按钮被按下时,如果CheckBox被选中,Label显示Hello,否则显示World。
: 由于我没用ui design,所以能否在不把这几个QWidget加到mainwindow的成员的情况下完成这件事。很困惑SLOT怎么写。。多谢各位大神了!
好的谢谢!
【 在 gaoweiwei 的大作中提到: 】
: 没用ui design不影响槽函数的编写,可以把那几个widget的指针作为MainWindow类的成员变量,然后写一个槽函数完成你的工作,再connect一下就可以了。
: 如果“不把这几个QWidget加到mainwindow的成员”是必须要求的话,并且用的是Qt5,那可以写一个lambda表达式当做槽函数。
谢谢!
【 在 phantomlyc 的大作中提到: 】
: main.cpp:
: #include "mainwindow.h"
: #include <QApplication>
: ...................