一个简单的Qt构造函数的参数初始化问题,求高手解答
解决时间 2021-01-27 01:56
- 提问者网友:最爱你的唇
- 2021-01-26 18:57
C++学的不好,最近学Qt遇到了一个小问题,很疑惑(问题见代码注释),谢谢好心人帮助~~
hellodialog.h内容如下:
#include
namespace Ui {
class HelloDialog;
}
class HelloDialog : public QDialog
{
Q_OBJECT
public:
explicit HelloDialog(QWidget *parent = 0); //这里构造函数只有一个参数parent
signals:
public slots:
private:
Ui::HelloDialog *ui; //新添内容
};
#endif // HELLODIALOG_H
hellodialog.c代码如下:
#include "hellodialog.h"
#include "ui_hellodialog.h"
HelloDialog::HelloDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::HelloDialog) //这种初始化方式是通过C++中的参数初始化表来初始化吗?如果是这样,那么 //构造函数不是只有一个参数parent,为什么这里还多了一个参数ui?它是谁的 //参数?
{
ui->setupUi(this);
}
最佳答案
- 五星知识达人网友:玩家
- 2021-01-26 20:11
HelloDialog 中不是有一个成员 Ui::HelloDialog *ui; //新添内容
这里的ui就是指这个数据成员啊,这个的意思就是 ui =new Ui::HelloDialog
就是给成员ui进行初始化。
全部回答
- 1楼网友:深街酒徒
- 2021-01-26 21:42
在void finddialog::findclicked()中 定义的两个信号
45 if (backwardcheckbox->ischecked()) {
46 emit findprevious(text, cs);
47 } else {
48 emit findnext(text, cs);
49 }
当用户点击find按钮后 调用这个函数 函数中获取lineedit和casecheckbox的状态 然后发送信号
41 qstring text = lineedit->text();
42 qt::casesensitivity cs =
43 casecheckbox->ischecked() ? qt::casesensitive
44 : qt::caseinsensitive;
在别的程序中使用这个类时,可以通过关联这两个信号 知道这个窗口中lineedit和casecheckbox的状态
我要举报
大家都在看
推荐资讯