当前位置: 代码迷 >> QT开发 >> 例子程序~
  详细解决方案

例子程序~

热度:72   发布时间:2016-04-25 04:41:02.0
求一个例子程序~~~
谢谢刚才各位的帮助,可惜刚接触Qt才2,3天,还是不能完全理解各位的意思~~~

还是求哪位大神不吝给个例子程序吧,还是刚才要实现的那个功能,在一个窗口上有一个按钮(最好能控制按钮在窗口的位置),然后点击button会弹出一个dialog来~~

ps:或者哪位大神可以稍微修改下我的程序,让这个能跑通,实现这个简单的功能~

C/C++ code
头文件mainwindow.h:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QtGui>#include <QMainWindow>namespace Ui {    class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();private slots:    void open();private:    Ui::MainWindow *ui;    QPushButton *button;    QDialog *dialog;};#endif // MAINWINDOW_H源文件mainwin.cpp:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtGui>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    QPushButton *button =new QPushButton("Open");    //button->setCheckable(true);    QObject::connect(button, SIGNAL(clicked()), this, SLOT(open()));    QGridLayout *layout = new QGridLayout;    layout->addWidget(button,0,0);    setLayout(layout);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::open()  {  dialog->show();  }主函数main.cpp:#include <QtGui/QApplication>#include "mainwindow.h"#include <QtGui>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}


------解决方案--------------------
又是你,说一个不用设置layout的方法
1,建立一个新的项目
2,在mainwindow.ui里拖放一个push button,给它起个名字"button0"
3,右键点击这个button,选择"转到槽",选择clicked(),确认。这时候你就转到这个button被clicked过后的相应slot部分了,你在这段代码上写你要做的事情,比如dialog->show();

另外的不用.ui的方法要设置layout很麻烦,qt自带的例子里不用.ui的比较少但是还是有的,你好好找找学习一下,那个不用ui的方法很有助于你理解整个框架和流程
------解决方案--------------------
你的 mainWindow.cpp里有两个错误 

1. 给pushButton一个父对象 代码改为:QPushButton *button =new QPushButton("Open",this);

2. dialog 没有初始化 代码改为
void MainWindow::open()
{
dialog = new QDialog();

dialog->show();

}

我已调试通过.
  相关解决方案