• 4907阅读
  • 5回复

[提问]写了个对话框,Qt5.0.2提示老多错误....【已解决】 [复制链接]

上一主题 下一主题
离线choudoufu007
 
只看楼主 倒序阅读 楼主  发表于: 2013-05-06
— 本帖被 yfx2003 从 《C++ GUI Qt 4编程》(第2版)专栏 移动到本区(2013-05-07) —
main.cpp (1 K) 下载次数:2 dialog.cpp (2 K) 下载次数:2 dialog.h (1 K) 下载次数:2 findDialog.pro (1 K) 下载次数:3



文件直接贴上来
头文件dialog.h
#ifndef DIALOG_H#define DIALOG_H
#include <QDialog>
namespace Ui{class Dialog;}
class QCheckBox;class QLabel;class QLineEdit;class QPushButton;
class Dialog : public QDialog{    Q_OBJECTpublic:    explicit Dialog(QWidget *parent = 0);    ~Dialog();signals://定义信号    void findNext(const QString &str,Qt::CaseSensitivity cs);    void findPrevious(const QString &str,Qt::CaseSensitivity cs);private slots://定义槽    void findClicked();    void enableFindButton(const QString &text);private:    QLabel *label;    QLineEdit *lineEdit;    QCheckBox *caseCheckBox;    QCheckBox *backwardCheckBox;    QPushButton *findButton;    QPushButton *closeButton;};
#endif // DIALOG_H
dialog.cpp#include <QtGui>#include "dialog.h"
Dialog::Dialog(QWidget *parent)    : QDialog(parent){    label=new QLabel(tr("Find &what:"));    lineEdit=new QLineEdit;    label->setBuddy(lineEdit);    caseCheckBox=new QCheckBox(tr("Match &case")) ;    backwardCheckBox=new QCheckBox(tr("Search &backward")) ;    findButton=new QPushButton(tr("&Find")) ;    findButton->setDefault(true);    findButton->setEnabled(false);    closeButton-=new QPushButton(tr("Close")) ;
    connect(lineEdit,SIGNAL(textChange(const QString &)),this,SLOT(enableFindButton(const QString &)));    connect(findButton,SIGNAL(clicked()),this,SLOT(findClicked()));    connect(closeButton,SIGNAL(clicked()),this,SLOT(colse()));
    QHBoxLayout *topLeftLayout=new QHBoxLayout;    topLeftLayout->addWidget(label);    topLeftLayout->addWidget(lineEdit);
    QVBoxLayout *leftLayout=new QVBoxLayout;    leftLayout->addLayout(topLeftLayout);    leftLayout->addWidget(caseCheckBox);    leftLayout->addWidget(backwardCheckBox);
    QVBoxLayout *rightLayout=new QVBoxLayout;    rightLayout->addWidget(findButton);    rightLayout->addWidget(closeButton);    rightLayout->addStretch();
    QHBoxLayout *mainLayout=new QHBoxLayout;    mainLayout->addLayout(leftLayout);    mainLayout->addLayout(rightLayout);
    setLayout(mainLayout);    setWindowTitle(tr("Find"));    setFixedHeight(sizeHeight().height());}
void Dialog::findClicked(){    Qstring text=LineEdit->text();    Qt::CaseSensitivity cs=caseCheckBox->isChecked()? Qt::CaseSensitive : Qt::CaseInsensitive;    if(backwardCheckBox->isChecked())        {emit findPrevious(text,cs);}    else        {emit findNext(text,cs);}}void Dialog::enableFindButton(const QString &text){    findButton->setEnabled(!text.isEmpty());}
Dialog::~Dialog(){    }main.cpp#include "dialog.h"#include <QApplication>
int main(int argc, char *argv[]){    QApplication a(argc, argv);    Dialog *dialog=new Dialog;    dialog->show();    return a.exec();}来大神帮忙看下,刚开始学Qt,望指导...

离线choudoufu007
只看该作者 1楼 发表于: 2013-05-06
都是严格按书本上写的,为什么编译不通过,用的《C++GUI Qt4》难道是版本的关系?Qt4我安装了半天也没弄好,所以装的Qt5,结果写出的代码编译不通过...
离线yfx2003

只看该作者 2楼 发表于: 2013-05-06
你把整个工程打包一下上传,不要这样一个个的文件。

看起来都乱。

初步应该是头文件的问题。

容易解决。
www.qtcn.org/gpq4/
ajaxref.okajax.com/
离线choudoufu007
只看该作者 3楼 发表于: 2013-05-06
Test.rar (46 K) 下载次数:3

大神帮忙看下啊
错误老多...下面这只是一部分...

离线realfan

只看该作者 4楼 发表于: 2013-05-06
回 3楼(choudoufu007) 的帖子
少包含 了一些头文件,
一些type mistakes
帮你改好了,你自己对比一下吧

findDialog.zip (3 K) 下载次数:6
离线choudoufu007
只看该作者 5楼 发表于: 2013-05-07
回 4楼(realfan) 的帖子
太谢谢了!
快速回复
限100 字节
 
上一个 下一个