• 6004阅读
  • 9回复

关于界面出现两个相同widget的问题 [复制链接]

上一主题 下一主题
离线duzhongming
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-04
— 本帖被 XChinux 执行加亮操作(2010-11-04) —
我画了如图1这样一个界面


预想运行后出现图2,


结果出了图3,


有哪位大侠知道原因,指点一下
离线duzhongming
只看该作者 1楼 发表于: 2010-11-04
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GoToCellDialog</class>
<widget class="QDialog" name="GoToCellDialog">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>459</width>
    <height>276</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>GoToCellDialog</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <layout class="QHBoxLayout" name="horizontalLayout">
     <item>
      <widget class="QLabel" name="label">
       <property name="text">
        <string>&Cell Location :</string>
       </property>
       <property name="buddy">
        <cstring>lineEdit</cstring>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QLineEdit" name="lineEdit"/>
     </item>
    </layout>
   </item>
   <item>
    <layout class="QHBoxLayout" name="horizontalLayout_2">
     <item>
      <spacer name="horizontalSpacer">
       <property name="orientation">
        <enum>Qt::Horizontal</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
         <width>40</width>
         <height>20</height>
        </size>
       </property>
      </spacer>
     </item>
     <item>
      <widget class="QPushButton" name="okButton">
       <property name="enabled">
        <bool>false</bool>
       </property>
       <property name="text">
        <string>OK</string>
       </property>
       <property name="default">
        <bool>true</bool>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QPushButton" name="cancelButton_2">
       <property name="text">
        <string>Cancel</string>
       </property>
      </widget>
     </item>
    </layout>
   </item>
  </layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
离线xtfllbl

只看该作者 2楼 发表于: 2010-11-04
你出了在ui上画,是不是还在代码里添加了pushbutton
上海欢迎您
离线wd007

只看该作者 3楼 发表于: 2010-11-04
楼上说法我赞同。

你的ui的代码中有:<widget class="QPushButton" name="cancelButton_2">

你看看是不是重复弄了一个
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线duzhongming
只看该作者 4楼 发表于: 2010-11-05
回 2楼(xtfllbl) 的帖子
代码里什么都没加,只是在main里加了一些代码
find.h*********************************************************************************************

#ifndef FIND_H
#define FIND_H

#include <QDialog>

namespace Ui {
    class find;
}

class find : public QDialog
{
    Q_OBJECT

public:
    explicit find(QWidget *parent = 0);
    ~find();

private:
    Ui::find *ui;
};

#endif // FIND_H




find.cpp*********************************************************************************************

#include "find.h"
#include "ui_find.h"

find::find(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::find)
{
    ui->setupUi(this);
}

find::~find()
{
    delete ui;
}



main.cpp*********************************************************************************************
#include <QtGui/QApplication>
#include "find.h"

#include "ui_find.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Ui::find ui;
    find *dialog = new find;
    ui.setupUi(dialog);
    dialog->show();
    return a.exec();
}
离线duzhongming
只看该作者 5楼 发表于: 2010-11-05
回 3楼(wd007) 的帖子
代码里什么都没加,只是在main里加了一些代码
find.h*********************************************************************************************

#ifndef FIND_H
#define FIND_H

#include <QDialog>

namespace Ui {
    class find;
}

class find : public QDialog
{
    Q_OBJECT

public:
    explicit find(QWidget *parent = 0);
    ~find();

private:
    Ui::find *ui;
};

#endif // FIND_H




find.cpp*********************************************************************************************

#include "find.h"
#include "ui_find.h"

find::find(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::find)
{
    ui->setupUi(this);
}

find::~find()
{
    delete ui;
}



main.cpp*********************************************************************************************
#include <QtGui/QApplication>
#include "find.h"

#include "ui_find.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Ui::find ui;
    find *dialog = new find;
    ui.setupUi(dialog);
    dialog->show();
    return a.exec();
}
离线duzhongming
只看该作者 6楼 发表于: 2010-11-05
回 3楼(wd007) 的帖子
还有一个现象就是,如果我把右下方的button Cancel删除之后,左上角就变成了OK button
如果再删除OK button,左上角就出现了那个lineEdit
离线duzhongming
只看该作者 7楼 发表于: 2010-11-05
回 2楼(xtfllbl) 的帖子
还有一个现象就是,如果我把右下方的button Cancel删除之后,左上角就变成了OK button
如果再删除OK button,左上角就出现了那个lineEdit
离线dbzhang800

只看该作者 8楼 发表于: 2010-11-05
Re:回 3楼(wd007) 的帖子
引用第5楼duzhongming于2010-11-05 09:35发表的 回 3楼(wd007) 的帖子 :
代码里什么都没加,只是在main里加了一些代码
find.h*********************************************************************************************
#ifndef FIND_H
#define FIND_H
.......


构造函数函数,创建一个 Ui::find 对象,并且添加到界面上
    ui(new Ui::find)
{
    ui->setupUi(this);
}



main函数中 ,创建了另一个 Ui::find 对象,并且被添加到界面上
    Ui::find ui;
    find *dialog = new find;
    ui.setupUi(dialog);

离线duzhongming
只看该作者 9楼 发表于: 2010-11-05
回 8楼(dbzhang800) 的帖子
明白了,非常感谢
快速回复
限100 字节
 
上一个 下一个