Qt下的动态对话框

在最近写的一个程序里,有些地方得和用户有个交互,需要用户输入几个参数,然后程序才往下继续走。于是遇到了2个问题。一个是怎么写自定义的对话框,还一个是怎么卡住。

  先说怎么自定义对话框吧。其实和VC里的思路一样的。自己写对话框类,继承自QDialog,至于窗体怎么画也分2种思路,一种是ui里画好了,用QT自己的uiloader等需要对话框时导入,还一种就是用代码自己一个个画。我非常赞成第二种方法,更好控制,更好处理参数的传递。废话少说,贴下自己写的对话框类就是了。

  

class SetPosDialog :public QDialog
{
    Q_OBJECT
public:
    SetPosDialog(QWidget *parent=0);
private:
    QLabel *x_label,*y_label,*z_label;
    QLineEdit *x_lineEdit,*y_lineEdit,*z_lineEdit;
    QPushButton *submitButton,*cancelButton;

public:

    Point3d m_3d;
    //float m_x,m_y,m_z;

private slots:
    void submitClicked();
    void cancelClicked();
};

代码解释:就是2个按钮的slot,以及一些控件指针,以及一个接受参数的Point3d。实现代码就不贴了,实在简单。关键还是下面的如果卡住对话框。

  2、关于这个问题,我觉得vc处理得很好,分了模态对话框和非模态对话框。(或许QT里有,可是我才接触它,还没遇见过)。

  首先调用对话框如下:
  SetPosDialog *h=new SetPosDialog();
  h->show();
  接着
  if(h->exec()==QDialog::Accepted||h->exec()==QDialog::Rejected)
  这话的意思就是,不管上面的对话框是点的确定,还是取消,都执行下面的,但没点的话,就还不执行~

  不过既然如此,你就得在自己的对话框实现类里的那几个按钮对应的slot里写上QDialog::Accepted或QDialog::Rejected。

  好了~笔记完毕。发现自己越来越不会表达了,不过幸好自己还能看懂这些乱七八糟的东西。~

本文固定链接: http://liusir.name/qt-with-dynamic-dialog-box.html | 民警小刘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值