关于代码界面控件分离出主窗口的问题
问个很尴尬的小问题,我第一次尝试纯代码设计界面,为啥最后出来的结果是控件不在主窗口,反而在单独分离出来的一个窗口里面?还显示:setGeometry: Unable to set geometry 30x15+121+18 on QWidgetWindow/'QPushButtonClassWindow'. Resulting geometry:120x15+121+18 (frame: 8, 31, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 0x0, maximum size: 16777215x16777215).
估计是你没设置父窗口 DemoCc 发表于 2021-11-10 18:36
估计是你没设置父窗口
啊这,还要设置?怎么设置? setparent()或者在初始化的时候设置
DemoCc 发表于 2021-11-14 21:23
setparent()或者在初始化的时候设置
setparent()里面填什么?填this吗? DemoCc 发表于 2021-11-14 21:23
setparent()或者在初始化的时候设置
我填的this结果崩溃了,怎么办:( show you code:):) #ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLabel>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private:
QPushButton *btn1;
QPushButton *btn2;
QLabel *lbl;
void iniUI();
void iniSignalSlots();
void clicked1();
};
#endif // WIDGET_H
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
iniUI();
iniSignalSlots();
setWindowTitle("manual");
setWindowFlags(Qt::WindowCloseButtonHint|Qt::MSWindowsFixedSizeDialogHint);
}
Widget::~Widget()
{
}
void Widget::iniUI()
{
btn1=new QPushButton(tr("显示"));
btn2=new QPushButton(tr("退出"));
btn1->setGeometry(121,18,30,15);
btn2->setGeometry(121,100,30,15);
lbl=new QLabel;
lbl->setGeometry(50,50,30,15);
btn1->show();
btn2->show();
lbl->show();
}
void Widget::iniSignalSlots()
{
connect(btn1,SIGNAL(clicked(bool)),this,SLOT(clicked1()));
connect(btn2,SIGNAL(clicked(bool)),this,SLOT(close()));
}
void Widget::clicked1()
{
lbl->setText("1");
}
这是加setparent之前的,我不知道加到哪里 DemoCc 发表于 2021-11-28 08:33
show you code
是不是因为没用layout?可是我不想用啊 btn1->setparent(this);
btn2->setparent(this);
lbl->setparent(this);
然后调用成员函数move自己移动到哪里
不用show 建议你拿本书或者看下免费视频 学习下 DemoCc 发表于 2021-12-5 10:03
建议你拿本书或者看下免费视频 学习下
我也想看书用心学啊,问题是学到纯代码部分全都是layout起手的,网上找到的所有实例也全都是layout起手的,我就想找一个不带layout的就这么难吗? 控件需要setParent(主界面),或者主界面通过layout添加控件
页:
[1]