qt fontComboBox更改别的窗口的字体

qt 在另一个窗口的fontComboBox控件怎么更改主窗口label的字体啊

响应QFontComboBox的currentFontChanged信号,字体改变会发出这个信号,你写个槽去改变主窗口label的字体就行了。

【以下回答由 GPT 生成】

我可以为您提供一个解决方案。

首先,您需要一个主窗口和一个字体选择窗口。在主窗口中,您需要一个label和一个按钮。在字体选择窗口中,您需要一个fontComboBox控件来选择字体。

首先,创建一个新的Qt Widget项目,并将两个窗口的类添加到项目中。

在主窗口的.h文件中,添加以下代码:

#include <QMainWindow>
#include <QFont>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_fontButton_clicked();

private:
    Ui::MainWindow *ui;
};

在主窗口的.cpp文件中,添加以下代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "fontdialog.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_fontButton_clicked()
{
    FontDialog fontDialog(this);
    if(fontDialog.exec() == QDialog::Accepted)
    {
        QFont selectedFont = fontDialog.getSelectedFont();
        ui->label->setFont(selectedFont);
    }
}

在字体选择窗口的.h文件中,添加以下代码:

#include <QDialog>
#include <QFont>

namespace Ui {
class FontDialog;
}

class FontDialog : public QDialog
{
    Q_OBJECT

public:
    explicit FontDialog(QWidget *parent = nullptr);
    ~FontDialog();

    QFont getSelectedFont();

private slots:
    void on_fontComboBox_currentFontChanged(const QFont &font);

private:
    Ui::FontDialog *ui;
    QFont selectedFont;
};

在字体选择窗口的.cpp文件中,添加以下代码:

#include "fontdialog.h"
#include "ui_fontdialog.h"

FontDialog::FontDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::FontDialog)
{
    ui->setupUi(this);
    selectedFont = ui->fontComboBox->currentFont();
}

FontDialog::~FontDialog()
{
    delete ui;
}

QFont FontDialog::getSelectedFont()
{
    return selectedFont;
}

void FontDialog::on_fontComboBox_currentFontChanged(const QFont &font)
{
    selectedFont = font;
}

接下来,在主窗口的ui文件中,为label和按钮添加相应的控件。

最后,连接按钮的clicked信号到主窗口的on_fontButton_clicked槽函数。

现在,当您运行主窗口,点击按钮后,将打开字体选择窗口。选择字体后,主窗口的label将更新为所选的字体。

请记住,在运行程序之前,确保在.pro文件中添加了所需的QT += widgets。

这是一个使用Qt的fontComboBox控件更改主窗口的label字体的解决方案。希望对您有帮助!



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^