重复使用 setCenterWidget
来源:互联网 发布:肛门调教知乎 编辑:程序博客网 时间:2024/04/29 18:24
主窗口mainwindow ,有几个QWidget:widget1,widget2,.........
想交替使用widget1,widget2...作为centerWidget,
可以关联信号和槽,必要时使用setCenterWidget(widgetn),修改当前中央部件
查看手册:
void QMainWindow::setCentralWidget ( QWidget * widget )Sets the given widget to be the main window's central widget.Note: QMainWindow takes ownership of the widget pointer and deletes it at the appropriate time.
设置为中央部件后widget由QMainWindow管理,appropriate time 在适合时候删除它,包括窗口关闭和再次调用setCenterWidget
所以每个widget在第一次调用时都没有问题,等再次调用时会报错,因为已经被QMainWindow删除了
有一个修改方法是,重写setCenterWidget 函数 ,调用setCenterWidget前将可能存在的centerWidget的所有权释放:
void MainWindow::setCentralWidget(QWidget *widget){ QWidget * curWidget = this->centralWidget(); if(curWidget) curWidget->setParent(NULL); this->setCentralWidget(widget);}
QStackedWidget *pagesWidget;pagesWidget = new QStackedWidget;pagesWidget->addWidget(page1);pagesWidget->addWidget(page2);pagesWidget->addWidget(page3);
交替当前项使用函数
pagesWidget->setCurrentIndex(n)
参考:
http://qtforum.org/article/31828/question-on-qmainwindow-setcentralwidget.html
- 重复使用 setCenterWidget
- FSCommand /getURL 重复使用 bug
- 文件变量的重复使用
- [Android] Activity 重复使用
- java preparestatment 可以重复使用
- UITableView cell的重复使用
- 布局的重复使用
- TensorLayer 如何重复使用 variable
- InputStream对象的重复使用
- ThinkPHP 3.2 重复使用页面
- greendao重复使用查询语句
- tensorflow重复使用共享变量
- 命名空间无法重复使用
- 可重复使用程序代码 + 可重复使用模型 = 更高的生产力
- 可重复使用程序代码 + 可重复使用模型 = 更高的生产力
- 可重复使用程序代码 + 可重复使用模型 = 更高的生产力
- 可重复使用程序代码 + 可重复使用模型 = 更高的生产力
- 中国为何拒绝重复使用课本?
- 文件权限
- 【备忘】Ant打包jar示例
- Fibonacci with ADA and others (Part 1/3)
- linux
- 备忘
- 重复使用 setCenterWidget
- sprintf,你知道多少?
- 黑马程序员-javascript学习之代码示例
- Picking: Screen to Projection Window Transform
- HQL Query查询
- android布局详解
- Linux(4)常用命令
- poj1061青蛙的约会
- 0.windbg-!logexts(自带的监控API)