下の画像のようなものを達成するためにa のQToolBar
中に aを追加しようとしてきたので、新しいものを追加するたびに、その中に関連するものもあります。QTabWidget
QTabWidget
QToolBar
すべてが正常に動作しているようです。QAction
にリンクするために a を作成し、この投稿QTabWidget
によると、それを行うことは可能であるように見えますが、問題は、コンパイル時に以下に示すように何も表示されないことです。
以下は私がこれまでに行ったことです:
メインウィンドウ.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void onChangeTab(int index);
void newTab();
void closeTab(const int &index);
private slots:
void on_addTabBtn_clicked();
void on_tabWidget_tabCloseRequested(int index);
private:
Ui::MainWindow *ui;
QAction *addTab1;
QToolBar *mToolBar1;
QAction *addIconToolBar1;
};
メインウィンドウ.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->tabWidget->clear();
ui->tabWidget->setTabsClosable(true);
ui->tabWidget->addTab(new QLabel("Add"), QString("Add"));
ui->toolBar->setContextMenuPolicy(Qt::ActionsContextMenu);
mToolBar1 = new QToolBar;
addIconToolBar1 = new QAction;
addIconToolBar1->setIcon(QIcon("qrc:/cardio.png"));
ui->toolBar->addWidget(mToolBar1);
ui->toolBar->addAction(addIconToolBar1);
connect(ui->addTabBtn, &QPushButton::clicked, this, [&] { ui->tabWidget->addTab(new QLabel("Add"), QString("Add")); });
connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_addTabBtn_clicked()
{
int index = 0;
if(index == this->ui->tabWidget->count() - 1) {
newTab();
}
}
void MainWindow::on_tabWidget_tabCloseRequested(int index)
{
ui->tabWidget->removeTab(index);
}
私はさまざまな方法で問題を解決しようとし、原因が何であるかを調査しました。これは、ユーザーがそれを行っているように見えるため、私が見つけた最も重要なものですが、ドキュメントへの参照や、理解/学習するためのコードの例はありません。
この問題を解決するための正しい方向を示してくれてありがとう。