gpt4 book ai didi

c++ - 从 Qt 中的对话框中获取数据并在 Ui 中使用它

转载 作者:行者123 更新时间:2023-11-28 07:57:34 26 4
gpt4 key购买 nike

所以我正在使用 Qt 制作一个文本编辑器,现在我有一个按钮可以打开一个名为“格式化文本”的对话框。我希望它的工作方式类似于记事本中名为“字体”的对话框,您可以在其中从一些下拉列表中选择一些文本属性,它会向您显示文本的外观。现在我让它工作,你可以在其中选择字体样式、字体颜色和字体大小,然后点击预览,它会在对话框的一个框中向你显示文本的外观。但是,我有一个名为“确定”的按钮,它应该更改突出显示的文本或您将要键入的文本,但我不知道如何在主窗口上显示这些更改。 .ui 文件是私有(private)的,许多已经创建的函数和指针在每个 ui 文件中都是相同的,所以如果我将 ui 文件更改为 pubic,我必须更改一大堆东西。无论如何可以给我一个简单的答案吗?我正在尝试以尽可能少的困惑来做到这一点。对于我这种技能水平的人来说,更多的编码和更少的困惑比更少的编码和更多的困惑要好。抱歉,这是一个巨大的段落,我没有提供任何代码,但我认为代码不是必需的,但是如果您确实需要一些代码,我很乐意分享。 感谢您的帮助和您的时间。希望大家度过一个愉快的夜晚。

最佳答案

QDialog 有一个名为 finished() 的信号,您可以将此信号与您的插槽连接。要完成您的工作,请将 QSettings 或为简单起见 QStringList 传递给对话框设置(负责更改字体、颜色...),QStringList将保存用户定义的设置,关闭对话框后,遍历 QStringList 成员以提醒主窗口。伪代码看起来像这样类(class)编辑:

Editor::Editor()
{

TextSettings textSettings;
textSettings.setSettings(settings); // settings is a member

connect(textSettings, &finished(int)), this, SLOT(alertEditor(int)))
}

Editor::alertEditor(int s)
{
if(s == 0)
{
for (int i = 0; i < settings.size(); ++i)
settings.at(i).toLocal8Bit().constData(); // extract various user settings
}
}

类 TextSettings:

TextSettings::TextSettings(QStringList settings)
{
settings << ui->combobox->currentItem(); // font name as example

}

关于c++ - 从 Qt 中的对话框中获取数据并在 Ui 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12361039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com