Joh*_*ohn 12 c++ qt modal-dialog qdialog qmainwindow
我正在开发一个项目,需要调用带有工具栏的模态窗口,以便在加载之前对某些数据进行一些处理.我需要工具栏的原因是用户有几个可以组合的不同选项.
这里显而易见的选择是模态对话框(我现在正在使用它).问题是我想要一个工具栏.这是一个两部分问题:
QDialog?(也可以在Qt Designer中执行此操作吗?)QMainWindow模态?Fre*_*red 26
您只需使用QDialog上安装的布局管理器的setMenuBar函数:
myDialog->layout()->setMenuBar(myMenuBar);
Run Code Online (Sandbox Code Playgroud)
如果您不需要QMainWindow工具栏的内置拖放功能,您只需将QToolBar添加到任何布局,包括QDialog的布局().有关详细信息,请参阅下面的DigviJay Patil的答案,这在概念上绝对更清晰.
否则,请继续阅读.
它不是直接可以将添加QToolBar到QDialog在的QMainWindow :: addToolBar()的意义,因为QDialog只有继承QWidget,而不是QMainWindow,正如你指出(因此没有方法addToolBar())
你不能让一个QMainWindow模式,但你可以插入一个QMainWindow以QDialog这种方式:
码:
MyDialog::MyDialog() :
QDialog()
{
QMainWindow * mainWindow = new QMainWindow(); // or your own class
// inheriting QMainWindow
QToolBar * myToolBar = new QToolBar();
mainWindow->addToolBar(myToolBar);
QHBoxLayout * layout = new QHBoxLayout();
layout->addWidget(mainWindow);
setLayout(layout);
}
Run Code Online (Sandbox Code Playgroud)
实际上,a QMainWindow不一定必须是顶级窗口小部件,你甚至可以插入几个QMainWindows作为单个窗口小部件的子窗口(虽然可能不是最明智的选择,因为用户可能会与单独的组件混淆菜单栏,工具栏,停靠小部件等).
您可以在QDialog中添加QToolBar.但作为一个QWidget.请看一看
MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
{
QVBoxLayout *mainLayout = new QVBoxLayout(this);
QToolBar *toolBar = new QToolBar();
mainLayout->addWidget(toolBar);
QAction *action1 = new QAction("Add", toolBar);
QAction *action1 = new QAction("Del", toolBar);
//Add What you want
}
Run Code Online (Sandbox Code Playgroud)
由于QToolBar是QWidget的子代,我们可以将其添加为Widget.使用布局,您可以调整其位置.请查看此链接 http://developer.nokia.com/community/wiki/How_to_use_QToolBar_and_QToolButton_in_Qt
| 归档时间: |
|
| 查看次数: |
11625 次 |
| 最近记录: |