| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4021 人关注过本帖
标题:新手刚接触Qt
只看楼主 加入收藏
yu965634383
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:119
专家分:195
注 册:2017-9-1
结帖率:100%
收藏
 问题点数:0 回复次数:4 
新手刚接触Qt
程序代码:
#ifndef MYWIN_5_H
#define MYWIN_5_H

#include <QtWidgets/QMainWindow>
# include <QPushButton>
# include <QVBoxLayout>
# include <QLineEdit>
# include <QPlainTextEdit>
#include "ui_mywin_5.h"

class mywin_5 : public QMainWindow
{
    Q_OBJECT

public:
    mywin_5(QWidget *parent = 0);
    ~mywin_5();

private:
//    Ui::mywin_5Class ui;
    QPushButton * m_button;
    QLineEdit * m_lineEdit;
    QPlainTextEdit * m_textEdit;
};

#endif // MYWIN_5_H

这是头文件

#include "mywin_5.h"

mywin_5::mywin_5(QWidget *parent)
    : QMainWindow(parent)
{
//    ui.setupUi(this);

    m_button = new QPushButton("Hello,Qt!",this);
    m_lineEdit = new QLineEdit(this);
    m_textEdit = new QPlainTextEdit(this);

    QVBoxLayout * layout1 = new QVBoxLayout(this);
    layout1->addWidget(m_lineEdit);
    layout1->addWidget(m_textEdit);
    layout1->addWidget(m_button);
    layout1->setSpacing(60);

    this->setLayout(layout1);
}

mywin_5::~mywin_5()
{

}
这是头文件实现的cpp文件

#include "mywin_5.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    mywin_5 w;
    w.setWindowTitle("my window");
    w.show();
    return a.exec();
}
这是主函数


为什么会得到这样的一个窗口呢,
图片附件: 游客没有浏览图片的权限,请 登录注册


Button为什么不见了
搜索更多相关主题的帖子: Qt include parent this new 
2017-12-11 20:40
bks
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-2-19
收藏
得分:0 
定义错误了 ,改为
QPushButton *m_button = new QPushButton("Hello,Qt!",this);
你的三个控件都是空的,窗口只显示一个布局,
去补一下c+的指针的使用
 m_button = new QPushButton("Hello,Qt!",this);
左边是指针,右边实实值,
正确的应是,左边是指针,右边是对应的地址
类似这样
int *p;
int a=100;
p=&a;
2018-02-19 11:28
小二哈呜呜呜
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-3-1
收藏
得分:0 
因为你定义的类是继承于QMainWindow,不能直接设置setlayout,你需要定义一个QWidget的对象,然后将其设置为中心窗口部件,采用setCentralWidget();

具体代码实现如下:

{


    m_button = new QPushButton("Hello,Qt!",this);
      m_lineEdit = new QLineEdit(this);
      m_textEdit = new QPlainTextEdit(this);

      QVBoxLayout * layout1 = new QVBoxLayout(this);
      layout1->addWidget(m_lineEdit);
      layout1->addWidget(m_textEdit);
      layout1->addWidget(m_button);
      layout1->setSpacing(60);

   QWidget *widget1 =new QWidget;//这里是我添加的代码 注意加上头文件 # include<QWidget>
   widget1->setLayout(layout1);
   setCentralWidget(widget1);

}
2018-03-01 22:30
小二哈呜呜呜
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-3-1
收藏
得分:0 
回复 3楼 小二哈呜呜呜
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-03-01 22:32
aladeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-11
收藏
得分:0 
百度 “aladeng”,阿拉灯 aladeng
2018-10-11 22:54
快速回复:新手刚接触Qt
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019190 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved