vs下简历qt项目,,新建了一个按钮,,为什么显示的时候只有对话框,没有按钮啊,
test::test(QWidget*parent,Qt::WFlagsflags):QDialog(parent,flags){ui.setupUi(this);set...
test::test(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
ui.setupUi(this);
setWindowTitle(tr("example"));
QPushButton *display = new QPushButton("display");
display->setGeometry(0,0,40,20);
connect(display,SIGNAL(clicked()),this,SLOT(showimage()));
}
刚开始研究qt,,还请各位帮帮忙 展开
: QDialog(parent, flags)
{
ui.setupUi(this);
setWindowTitle(tr("example"));
QPushButton *display = new QPushButton("display");
display->setGeometry(0,0,40,20);
connect(display,SIGNAL(clicked()),this,SLOT(showimage()));
}
刚开始研究qt,,还请各位帮帮忙 展开
1个回答
展开全部
display->setParent(this);少了这个,你new的时候没有指定父窗口,就要设置一下,不然他属于桌面窗口,但是button又不能显示在桌面,就看不到了
追问
十分感谢,,像你说的那样加上那个就好了,,我还想问下如果像你说的如果new的时候指定父窗口,应该怎样弄呢,,麻烦写一下,我再仔细研究研究,,才开始接触还有很多不懂,承蒙指教
追答
这要从构造函数说起,控件基本都继承自QWidget,button也一样,那么他就默认有一个构造QPushButton(QWidget *parent=0);,那么就是说,new QPushButton(this);他就传递了父窗口,
同时,他还有 其他构造函数,而你用的是这个QPushButton(const QString &text, QWidget *parent=0);,第一个参数是文本,第二个就是父窗口,因为他默认0,而你也没有传递,他就设置父窗口为桌面了
多去看看pushButton的头文件和帮助文档就知道了,你ctrl + 单击类名就会跳到定义 去
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询