Qt从其他小部件调用QMainWindow方法的最佳方式
Qt best way to invoke methods of QMainWindow from other widget
我有一个类型为QMainWindow
的主窗口,然后我设置了一些小部件,并在其构造函数中将QMainWindow
作为父窗口,QMainWindow
作为Object传递。现在我需要从这个小部件调用QMainWindow中的方法。最好的方法是什么?
这个小部件是这样的:
DataListModel::DataListModel( QObject *parent ) :
QStandardItemModel( 0, 0, parent )
{
// here I like to invoke some QMainWindow method?
//can I cast somehow the parent ? or use some pointer ?
}
如果主窗口是DataListModel的父窗口,则可以强制转换它:
MainWindow *w = qobject_cast<MainWindow*>(parent);
if(w == 0) {
//error handling here
}
编辑
例如:
#include "mainwindow.h"
#include <QStatusBar>
ScrollBar::ScrollBar(QWidget *parent) :
QScrollBar(parent)
{
MainWindow *w = qobject_cast<MainWindow*>(parent);
if(w != 0) {
qDebug() << Q_FUNC_INFO;
QStatusBar *bar = w->statusBar();
bar->hide();
}
}
运行良好
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 转换/映射方法最佳做法