mainwindow 怎样调用 dialog(ui)

xxxpassenger 2012-05-03 12:39:07
用Designer设计了mainwindow.ui 和dialog_connect.ui,想通过点击mainwindow中的某个菜单然后显示dialog_connect,需要怎样实现?两个类如下:
class MainWindow : public QMainWindow
{
Q_OBJECT

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

private slots:

void on_action_connect_triggered();

private:
Ui::MainWindow *ui;
};


class Dialog_connect : public QDialog
{
Q_OBJECT

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

private:
Ui::Dialog_connect *ui;
};

想通过MainWindow的槽void on_action_connect_triggered()来显示Dialog_connect对话框,或者调用Dialog_connect中的一些控件,需要怎样操作?请高手知道一下。
...全文
571 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxpassenger 2012-05-05
  • 打赏
  • 举报
回复
非常感谢楼上各位对小弟提出的问题给予解答!!!并特别鸣谢xiachm!!!
xiachm 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 2 楼 的回复:

C/C++ code

void on_action_connect_triggered()
{
Dialog_connect dialog;
dialog.exec();
}


谢谢!原来如此简单。另外在请教两个问题:
1.如果在dialog_connect.ui上加一个lineEdit,要想通过MainWindow中的某个菜单改变其值,需……
[/Quote]

class Dialog_connect : public QDialog
{
...
public:
void setLineEditText(const QString &text)
{
ui->lineEdit->setText(text);
}
...
};


void on_action_connect_triggered()
{
Dialog_connect dialog;
dialog.setLineEditText("hello");
dialog.exec();
}
xxxpassenger 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C/C++ code

void on_action_connect_triggered()
{
Dialog_connect dialog;
dialog.exec();
}
[/Quote]

谢谢!原来如此简单。另外在请教两个问题:
1.如果在dialog_connect.ui上加一个lineEdit,要想通过MainWindow中的某个菜单改变其值,需要如何访问到这个值?
2.打开一个*.chm帮助文件怎样用想对路径?
QDesktopServices::openUrl(QUrl("D:/CPP/QT/help.chm", QUrl::TolerantMode));
上面有绝对路径可以打开。
如此美丽的你 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C/C++ code

void on_action_connect_triggered()
{
Dialog_connect dialog;
dialog.exec();
}
[/Quote]

这个也不错!!!!
如此美丽的你 2012-05-03
  • 打赏
  • 举报
回复
class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
signals:
void about(); //这里定义一个信号
private slots:
void on_action_connect_triggered();
private:
Ui::MainWindow *ui;
};

//MainWindow.cpp
...
void MainWindow::on_action_connect_triggered()
{
emit about();
}
...
//main.cpp
..
MainWindow w;
Dialog_connect d;
QObject::connect(&w,SIGNAL(about()),&d,SLOT(exec());
w.show();
return a.exec();
xiachm 2012-05-03
  • 打赏
  • 举报
回复

void on_action_connect_triggered()
{
Dialog_connect dialog;
dialog.exec();
}
xiebin133 2012-05-03
  • 打赏
  • 举报
回复
你在on_action_connect_triggered() 发送一个信号给Dialog_connect不就可以了。

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧