• 5730阅读
  • 9回复

新手提问:两个窗口,一个显示,一个隐藏的问题 [复制链接]

上一主题 下一主题
离线cpp23
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-16
— 本帖被 XChinux 执行加亮操作(2008-07-17) —
class QTResult : public QWidget
{
    Q_OBJECT

public:
    QTResult(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~QTResult();

private:
    QPushButton *sltButton,*pageUp,*pageDown,*backBtn;

    public slots:
        void listSelected();
        void backBtnClicked();
        void pageUpClicked();
        void pageDownClicked();
};
//查询框
class QTSearch : public QWidget
{
    Q_OBJECT

public:
    QTSearch(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~QTSearch();

private:
    QPushButton *button;
    QTResult *rstDlg;

public slots:
    void searchButtonClick();
};
QTResult *rstDlg是QTSearch的一个成员,我的目的是把QTSearch当成主窗口,当它显示的时候,
QTResult不显示,当QTResult退出时,QTSearch重新显示。我是这样做的。
void QTSearch::searchButtonClick()
{
    this->hide();
    rstDlg->show();
    rstDlg->raise();
}
这里没有问题,第一步可以实现。
void QTResult::backBtnClicked()
{
    this->hide();
    parentWidget()->show();
}
在这里就不行了,QTResult是隐藏了,但是QTSearch却不显示出来,不知道为什么,有什么解决办法吗?谢谢各位指导
[ 此贴被cpp23在2008-07-16 13:38重新编辑 ]
离线guoyun_he

只看该作者 1楼 发表于: 2008-07-16
当主控件隐藏的时候,主控件的子控件怎么可能显示。你可以把你的查询和结果控件都作为主控件的子控件来操作!
离线cpp23
只看该作者 2楼 发表于: 2008-07-16
不是控件,两个都是窗口哦。
class QTSearch : public QWidget
class QTResult : public QWidget
即两个窗口不同时显示,这跟你说的不一样吧?
离线lzian
只看该作者 3楼 发表于: 2008-07-16
result的父级有没有指向search
离线longle323

只看该作者 4楼 发表于: 2008-07-16
parentWidget()->show();
你确认这句有用?
离线cpp23
只看该作者 5楼 发表于: 2008-07-16
有啊。我copy过来的了。执行到那里的时候就出错了
离线cpp23
只看该作者 6楼 发表于: 2008-07-16
回3楼,怎样使“result的父级有没有指向search”?麻烦解释一下好吗?
离线cpp23
只看该作者 7楼 发表于: 2008-07-16
各路英雄好汉,大牛们,帮帮忙
离线longle323

只看该作者 8楼 发表于: 2008-07-16
出错是必然的,没有父窗口,你换种方法不就得了,别用parentWidget()-> 把先前的窗口的指针传一下不就得了
或者在创建QTResult时候,指定他的父窗口为QTSearch!
离线lzian
只看该作者 9楼 发表于: 2008-07-16
贴一下两个窗口的构造函数
快速回复
限100 字节
 
上一个 下一个