找回密码
 立即注册
收起左侧

关于代码界面控件分离出主窗口的问题

7
回复
220
查看
[复制链接]
累计签到:10 天
连续签到:2 天
来源: 2021-11-6 09:51:04 显示全部楼层 |阅读模式
1Qter豆
问个很尴尬的小问题,我第一次尝试纯代码设计界面,为啥最后出来的结果是控件不在主窗口,反而在单独分离出来的一个窗口里面?
还显示: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).

回复

使用道具 举报

累计签到:102 天
连续签到:47 天
2021-11-10 18:36:48 显示全部楼层
估计是你没设置父窗口
回复

使用道具 举报

累计签到:10 天
连续签到:2 天
2021-11-14 16:50:26 显示全部楼层
DemoCc 发表于 2021-11-10 18:36
估计是你没设置父窗口

啊这,还要设置?怎么设置?
回复

使用道具 举报

累计签到:102 天
连续签到:47 天
2021-11-14 21:23:12 显示全部楼层
setparent()或者在初始化的时候设置
回复

使用道具 举报

累计签到:10 天
连续签到:2 天
2021-11-26 20:56:36 显示全部楼层
DemoCc 发表于 2021-11-14 21:23
setparent()或者在初始化的时候设置

setparent()里面填什么?填this吗?
回复

使用道具 举报

累计签到:10 天
连续签到:2 天
2021-11-26 21:25:29 显示全部楼层
DemoCc 发表于 2021-11-14 21:23
setparent()或者在初始化的时候设置

我填的this结果崩溃了,怎么办
回复

使用道具 举报

累计签到:102 天
连续签到:47 天
6 天前 显示全部楼层
                        show you code
回复

使用道具 举报

累计签到:10 天
连续签到:2 天
6 天前 显示全部楼层
#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之前的,我不知道加到哪里
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册