• 5979阅读
  • 5回复

qt3 如何动态生成对话框 [复制链接]

上一主题 下一主题
离线ilovethu
 
只看楼主 倒序阅读 楼主  发表于: 2008-05-09
— 本帖被 XChinux 执行加亮操作(2008-05-10) —
使用工具: qt3,mysql

目的:显示数据库中用户的相关信息

期望实现:
1、主界面上列出用户名:user1,user2,user3…… 。
2、选中某个用户,如 userX,之后点击buttun。
3、弹出一个对话框,上面显示出该用户userX的相关信息。

请问如何实现第三步,我只会利用designer制作静态的对话框,这种动态的对话框如何实现。
请指教! 多谢多谢!
^_^
离线songqiming

只看该作者 1楼 发表于: 2008-05-09
把用户信息放到QTable中 显示在对话框里
忘掉自私非爱人
离线ilovethu
只看该作者 2楼 发表于: 2008-05-09
谢谢楼上,但是我不明白的是数据如何在两个对话框中传递的。

弹出的对话框如何知道要显示的是userX的信息,还是显示userY的信息?

请教,谢谢!
离线diyuanbo

只看该作者 3楼 发表于: 2008-05-09
第一个对话框应该提供一个方法,用于外部获取操作人员选择了哪个用户。可以在designer中加入这个方法。
得到哪个用户,应该可以取到该用户的资料在第二个对话框中显示,第二个对话框可以有多种途径实现。可以是静态的,用designer设计,放一个QLabel可以,放一个QTextBrower也行。把用户信息形成文本,在QLabel/QTextBrower中显示。QTextBrower支持非常复杂的现实。动态的也可以,比如你写:
CDlgUsrSelect DlgUsrSelect ;//第一个对话框
DoSomeThing(DlgUsrSelect);
if(DlgUsrSelect.exec()==QDialog::Accepted){
Qtring StrUsrProfile;
FormUsrProfile(StrUsrProfile);//生成用户信息文本放在StrUsrProfile里
QMessageBox Mb;
Mb.setText(StrUsrProfile);
离线diyuanbo

只看该作者 4楼 发表于: 2008-05-09
对不住,上面没写完,按错钮发出去了。以下面的为准:
CDlgUsrSelect DlgUsrSelect ;//第一个对话框
DoSomeThing(DlgUsrSelect);
if(DlgUsrSelect.exec()==QDialog::Accepted){
    int UsrId = DlgUsrSelect.getSelectedUserId();
    Qtring StrUsrProfile;
    FormUsrProfile(UsrId ,StrUsrProfile);//生成用户信息文本放在StrUsrProfile里,好好写,支持复杂的显示风格
  QMessageBox Mb;
  Mb.setTextFormat(Qt::RichText);;//确保Mb支持复杂的显示风格
  Mb.setText(StrUsrProfile);
}
离线ilovethu
只看该作者 5楼 发表于: 2008-05-10
感谢楼上提供的方法,很简明清楚,我试一试! ^_^
快速回复
限100 字节
 
上一个 下一个