• 6803阅读
  • 8回复

怎样把QDialog获得的值传送给QWidget[急等] [复制链接]

上一主题 下一主题
离线cczj
 
只看楼主 倒序阅读 楼主  发表于: 2006-08-14
RT,请写的详细点,小弟初学,万分感谢,在线等!
离线gothicane

只看该作者 1楼 发表于: 2006-08-14
用signal slot   你的问题不详细   我也只能帮你这么多了   仔细看看assistant吧
离线cczj
只看该作者 2楼 发表于: 2006-08-14
有一个QWidget和一个QDialog,在QDialog 上有一个QLineEdit,我想把QLineEdit活的的内容传送给QWidget,这样写大哥能看明白吗?谢谢帮忙
离线cczj
只看该作者 3楼 发表于: 2006-08-14
如何实现类似QWidget+QDialog的功能

实现如下功能:
1.弹出新窗口,并使原窗口(QWidget)无效
2.新窗口(QDialog)放置一个textline,pushbotton,
3.新窗口点击pushbutton时能返回一个值给原窗口(QWidget)

这样写大家能明白了吧,我就是实现不了

3.新窗口点击pushbutton时能返回一个值给原窗口(QWidget)

这一步

请高手帮忙!
离线XChinux

只看该作者 4楼 发表于: 2006-08-14
C++里怎么从一个对象传递变量到另一个对象中?
Qt和C++一样。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线cczj
只看该作者 5楼 发表于: 2006-08-14
哦,我去44,谢谢斑竹!
离线XChinux

只看该作者 6楼 发表于: 2006-08-14
使原窗口无效,就是模式与非模式对话框,这是GUI编程的基础知识。看QDialog类的Document
点击pushbutton时能返回一个值给原窗口(QWidget),看QDialog类的成员列表Document
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线cczj
只看该作者 7楼 发表于: 2006-08-14
我的code如下 在magiclinux下通过

head.h

#ifndef HEAD_H
#define HEAD_H
#include <qwidget.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qlistview.h>
#include <qlineedit.h>
#include <qdialog.h>
#include <qlabel.h>
#include <qmultilineedit.h>
#include <qdir.h>


class MyDialog:public QDialog
{
   Q_OBJECT
   public:
      MyDialog();
   private:
                   QLabel *label;
      QLineEdit *input;
      QPushButton *commit;
      QPushButton *cancel;
   public slots:
                   void queding();
                   void quxiao();
};

class MyMainWindow:public QWidget
{
   Q_OBJECT
   public:
      MyMainWindow();
private:
      QPopupMenu *file;
      QMenuBar *menubar;
                   QListView *listview;
                   MyDialog *mydialog;
                   QMultiLineEdit *medit;
   public slots:
                   void open();
};

#endif





main.cpp

#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qwidget.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qlineedit.h>
#include <qlabel.h>
#include <qdir.h>
#include <qmultilineedit.h>

#include "head.h"


MyDialog::MyDialog():QDialog(0,0,TRUE)
{
   setCaption("Input FilePath");
   
   label = new QLabel(this);
   label->setText("Input Path :");
   label->setGeometry(10,10,80,20);
   label->setFont(QFont("Arial",12,QFont::Bold));
   label->setAlignment(AlignCenter);


   input = new QLineEdit(this);
   input->setGeometry(100,10,150,20);
   input->setAlignment(AlignLeft);

   commit = new QPushButton("Yes",this);
   commit->setFont(QFont("Arial",14,QFont::Bold));
   commit->setGeometry(20,40,90,30);

   cancel = new QPushButton("Cancel",this);
   cancel->setFont(QFont("Arial",14,QFont::Bold));
   cancel->setGeometry(150,40,90,30);

   connect(commit,SIGNAL(clicked()),this,SLOT(queding()));
   connect(cancel,SIGNAL(clicked()),this,SLOT(quxiao()));
}

void MyDialog::queding()
{
   this->hide();
}

void MyDialog::quxiao()
{
   this->hide();
}



MyMainWindow::MyMainWindow()
{
   setGeometry(200,200,400,400);
   resize(170,400);
   file = new QPopupMenu();
   file->insertItem("&Open",this,SLOT(open()));
   file->insertItem("&Quit",qApp,SLOT(quit()));
   menubar = new QMenuBar(this);
   menubar->insertItem("&File",file);
   medit = new QMultiLineEdit(this);
   medit->setGeometry(10,10,150,380);
   medit->setReadOnly(TRUE);    
   
   QDir myDir("/root");

   for(int i=0; i<myDir.count();i++)
   {
       medit->insertLine(myDir);
   }
}


void MyMainWindow::open()
{
   mydialog = new MyDialog();
   mydialog->show();
}


int main(int argc,char **argv)
{
   QApplication a(argc,argv);
   MyMainWindow w;
   a.setMainWidget(&w);
   w.show();
   return a.exec();
}
离线cczj
只看该作者 8楼 发表于: 2006-08-14
想把input path输入的内容传给后面的QDir接收,怎么传呢?
快速回复
限100 字节
 
上一个 下一个