注册 登录
编程论坛 QT论坛

新手刚接触Qt

yu965634383 发布于 2017-12-11 20:40, 4026 次点击
程序代码:
#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为什么不见了
4 回复
#2
bks2018-02-19 11:28
定义错误了 ,改为
QPushButton *m_button = new QPushButton("Hello,Qt!",this);
你的三个控件都是空的,窗口只显示一个布局,
去补一下c+的指针的使用
 m_button = new QPushButton("Hello,Qt!",this);
左边是指针,右边实实值,
正确的应是,左边是指针,右边是对应的地址
类似这样
int *p;
int a=100;
p=&a;
#3
小二哈呜呜呜2018-03-01 22:30
因为你定义的类是继承于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);

}
#4
小二哈呜呜呜2018-03-01 22:32
回复 3楼 小二哈呜呜呜
只有本站会员才能查看附件,请 登录
#5
aladeng2018-10-11 22:54
百度 “aladeng”,阿拉灯 aladeng
1