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

调试的时候setupUi出问题了

6
回复
7933
查看
[复制链接]
累计签到:11 天
连续签到:1 天
来源: 2017-11-17 17:53:01 显示全部楼层 |阅读模式
1Qter豆
sortdialog.cpp
  1. #include "sortdialog.h"
  2. #include <QWidget>

  3. SortDialog::SortDialog(QWidget *parent)
  4.     :QDialog(parent)
  5. {
  6.     setupUi(this);
  7.     secondaryGroupBox->hide();
  8.     tertiaryGroupBox->hide();
  9.     layout()->setSizeConstraint(QLayout::SetFixedSize);

  10.     setColumnRange('A','Z');
  11. }

  12. void SortDialog::setColumnRange(QChar first, QChar last)
  13. {
  14.    comboBox->clear();
  15.    comboBox_3->clear();
  16.    comboBox_5->clear();

  17.    comboBox_3->addItem(tr("None"));
  18.    comboBox_5->addItem(tr("None"));
  19.    comboBox->setMinimumSize(comboBox_3->sizeHint());

  20.    QChar ch = first;
  21.    while(ch <= last)
  22.    {
  23.        comboBox->addItem(QString(ch));
  24.        comboBox_3->addItem(QString(ch));
  25.        comboBox_5->addItem(QString(ch));
  26.        ch = ch.unicode() + 1;
  27.    }
  28. }
复制代码
sortdialog.h
  1. #ifndef SORTDIALOG_H
  2. #define SORTDIALOG_H
  3. #include <QDialog>

  4. #include "ui_sortdialog.h"

  5. class SortDialog: public QDialog,public Ui::SortDialog
  6. {
  7.     Q_OBJECT
  8. public:
  9.     SortDialog(QWidget * parent = 0);

  10.     void setColumnRange(QChar first,QChar last);
  11. };

  12. #endif // SORTDIALOG_H
复制代码
main.cpp
  1. #include "sortdialog.h"
  2. #include <QApplication>

  3. int main(int argc, char *argv[])
  4. {
  5.     QApplication a(argc, argv);
  6.     SortDialog *sortdialog = new SortDialog;
  7.     sortdialog->setColumnRange('C','F');
  8.     sortdialog->show();

  9.     return a.exec();
  10. }
复制代码
出现的问题是:
In constructor 'SortDialog::SortDialog(QWidget*)':
error: no matching function for call to 'SortDialog::setupUi(SortDialog*)'
     setupUi(this);
                 ^

candidate: void Ui_SortDialog::setupUi(QMainWindow*)
     void setupUi(QMainWindow *SortDialog)
          ^

no known conversion for argument 1 from 'SortDialog*' to 'QMainWindow*'

c++ qt4书上的例子 2.4
请问怎么解决这个问题

最佳答案

查看完整内容

sortdialog.ui 文件 建错了 建立的时候要选 对应的模板, 你这里应该选 qdialog模板
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-11-17 17:53:02 显示全部楼层
sortdialog.ui     文件 建错了

  建立的时候要选 对应的模板,  你这里应该选 qdialog模板
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2017-11-18 18:40:16 显示全部楼层
来个大侠帮帮我吧
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-11-19 15:20:52 显示全部楼层
名字空间问题?
QT5里的写法有些不同,我调试通过,我改改你的文件,你试试看?

H文件:
#ifndef SORTDIALOG_H
#define SORTDIALOG_H
#include <QDialog>

#include "ui_sortdialog.h"

namespace Ui {
class SortDialog;
}

class SortDialog: public QDialog
{
    Q_OBJECT
public:
    SortDialog(QWidget * parent = 0);

    void setColumnRange(QChar first,QChar last);

private:
    Ui::SortDialog *ui;
}

#endif // SORTDIALOG_H


回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-11-19 15:23:44 显示全部楼层
#include "sortdialog.h"
#include <QWidget>

SortDialog::SortDialog(QWidget *parent)
    Dialog(parent),
    ui(new Ui::SortDialog)
{
    ui->setupUi(this);
    secondaryGroupBox->hide();
    tertiaryGroupBox->hide();
    layout()->setSizeConstraint(QLayout::SetFixedSize);

    setColumnRange('A','Z');
}

void SortDialog::setColumnRange(QChar first, QChar last)
{
   comboBox->clear();
   comboBox_3->clear();
   comboBox_5->clear();

   comboBox_3->addItem(tr("None"));
   comboBox_5->addItem(tr("None"));
   comboBox->setMinimumSize(comboBox_3->sizeHint());

   QChar ch = first;
   while(ch <= last)
   {
       comboBox->addItem(QString(ch));
       comboBox_3->addItem(QString(ch));
       comboBox_5->addItem(QString(ch));
       ch = ch.unicode() + 1;
   }
}
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-11-19 15:26:51 显示全部楼层
#include "sortdialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    SortDialog sortDialog;
    sortdialog.setColumnRange('C','F');
    sortdialog.show();

    return a.exec();
}
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2017-11-21 10:59:38 显示全部楼层
谢谢回答,已经解决
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了