c – Qt小部件未显示在主窗口中
发布时间:2020-12-16 07:29:32 所属栏目:百科 来源:网络整理
导读:我正在尝试创建主应用程序窗口.它应该有一个菜单栏,并在下面显示一个带分割器的标签.我的主窗口代码如下. 我遇到的问题是菜单栏显示,但标签和拆分器没有.到目前为止我尝试的事情: 1.将拆分器的父级设置为“this” – 拆分器显示,但是在菜单栏上绘制并且很小
我正在尝试创建主应用程序窗口.它应该有一个菜单栏,并在下面显示一个带分割器的标签.我的主窗口代码如下.
我遇到的问题是菜单栏显示,但标签和拆分器没有.到目前为止我尝试的事情: 看起来完全忽略垂直布局. 不知道还有什么可以尝试.有什么建议? MyWindow::MyWindow(IViewSignalHandler* signalHandler,QWidget *parent,Qt::WFlags flags) : QMainWindow(parent,flags) { m_signalHandler = signalHandler; // menu m_fileMenu = new QMenu(tr("&File")); m_fileMenu->addAction(tr("&Open"),this,SLOT(slot_OpenFile(bool))); m_helpMenu = new QMenu(tr("&Help")); m_helpMenu->addAction(tr("&About"),SLOT(slot_ShowAboutBox(bool))); menuBar()->addMenu(m_fileMenu); menuBar()->addMenu(m_helpMenu); // graph m_graphWidget = new QwtPlot(); m_graphLegend = new QwtLegend(); m_graphLegend->setItemMode(QwtLegend::CheckableItem); m_graphWidget->insertLegend(m_graphLegend,QwtPlot::RightLegend); m_graphWidget->setAxisTitle(QwtPlot::xBottom,tr("X")); m_graphWidget->setAxisScale(QwtPlot::xBottom,DEFAULT_X_MIN,DEFAULT_X_MAX); m_graphWidget->setAxisTitle(QwtPlot::yLeft,tr("Y")); m_graphWidget->setAxisScale(QwtPlot::yLeft,DEFAULT_Y_MIN,DEFAULT_Y_MAX); QwtPlotZoomer* zoomer = new QwtPlotZoomer(m_graphWidget->canvas()); zoomer->setTrackerMode(QwtPlotZoomer::AlwaysOn); zoomer->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton,Qt::ControlModifier); zoomer->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton); // path label m_label= new QLabel(); m_label->setTextFormat(Qt::RichText); m_label->setWordWrap(false); m_label->setText(tr("<b>Label: </b>")); // splitter m_splitter = new QSplitter(); m_splitter->setChildrenCollapsible(true); m_list = new QListWidget(); m_splitter->addWidget(m_list); m_tree = new QTreeWidget(); m_splitter->addWidget(m_tree); m_text = new QTextEdit(); m_splitter->addWidget(m_text); m_splitter->addWidget(m_graphWidget); // page layout QVBoxLayout *pageLayout = new QVBoxLayout(this); pageLayout->addWidget(m_label); pageLayout->addWidget(m_splitter); setLayout(pageLayout); } […] m_mainWindow = new MyWindow(this); m_mainWindow->show(); 解决方法
我刚才遇到了同样的问题.我不知道是什么导致它,但继承QWidget而不是QMainWindow似乎已经修复了它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |