【发布时间】:2022-12-14 02:20:15
【问题描述】:
代替文件下拉菜单栏,我想在菜单栏中直接使用我在图片中绘制的按钮。
这是我的主窗口.cpp班级:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
model(new DomModel(QDomDocument(), this)),
view(new QTreeView(this))
{
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(tr("&FIND"), this, &MainWindow::openFile, QKeySequence::Open);
//fileMenu->addAction(tr("E&xit"), this, &QWidget::close, QKeySequence::Quit);
//fileMenu = activeAction(tr("&FIND"), this, &MainWindow::openFile, QKeySequence::Open);
view->setModel(model);
setCentralWidget(view);
setWindowTitle(tr("QTreeViewXML"));
}
打开文件() 函数:
void MainWindow::openFile()
{
QString filePath = QFileInfo("C:\\Users\\arpit.k\\Documents\\QT\\build-QTreeViewXML-Desktop_Qt_6_2_4_MinGW_64_bit-Debug\\Sample.xml").absoluteFilePath();
if (!filePath.isEmpty()) {
QFile file(filePath);
if (file.open(QIODevice::ReadOnly)) {
QDomDocument document;
if (document.setContent(&file)) {
DomModel *newModel = new DomModel(document, this);
view->setModel(newModel);
delete model;
model = newModel;
xmlPath = filePath;
}
file.close();
}
}
}
【问题讨论】:
-
你可以使用 QToolBar
-
虽然有指导方针,但一般来说,您可以将任何类型的小部件放在您想要的任何位置。没有规定必须以特定方式使用菜单或菜单栏。
-
这就引出了一个问题,您是否尝试简单地不添加菜单栏并添加带有按钮的框布局,例如在主布局的顶部?
-
@AviralArpit 我的职责是帮助你。粗鲁不是寻求帮助的最佳方式。问题是,我怀疑你显示的代码不是你写的。换句话说,您要求人们为您编写代码(这违反了 StackOverflow 准则)。证据是你问如何删除菜单栏,但如果你没有首先添加它,菜单栏就不会在这里。打电话给
menuBar()->addMenu()然后来这里抱怨是没有意义的,因为有一个菜单栏 :) 唯一有意义的方法是你转储的代码是否只是其他人代码的复制粘贴。 -
@AviralArpit 哦,你知道的法律比我多,很好 :) 在那种情况下,你不能忽视 Stack Overflow 不是免费的编码服务,来这里要求人们为你编写代码违反了这一点。无论如何,如果您所做的只是窃取其他人的代码,甚至没有您使用的语言(和框架)的基础知识,恐怕您迟早会碰壁。但是既然人们试图帮助你时你会很不愉快,那么自己修复代码怎么样? :) 祝你今天过得愉快