0

如果我只有一个 QFontDialog,如何为 2 个(或更多)QFont 更改不同的字体?我怎样才能更有效地做到这一点?我认为为每个 QFont 创建新的 QFontDialog 将非常愚蠢。

4

2 回答 2

1

如果您想同时执行此操作,则需要在表单中添加两个 QFontDialog。否则,您可以使用一个 QFontDialog 对象,并setCurrentFont()在显示对话框之前简单地设置当前字体。

于 2013-06-13T16:20:37.970 回答
0

因此,为每个 QFont 创建 QFontDialog 并不是最佳方法(太多 - 超过 100 - QFont-s 和 QFontDialog-s 将占用大量内存)。更高效 - 为 QFontDialog 和 QFont 创建特定的 SIGNAL-S 和 SLOT-s(在我的情况下,它是 FontChooser(修改后的 QLineEdit),从 QFontDialog 接收 QFont 信息),如下所示:

QObject::connect(&fontdialog, SIGNAL(font_selected(FontChooser *, const QFont &)), &fontchooser, SLOT(set_font_info(FontChooser *, const QFont &))); 
QObject::connect(&fontchooser, SIGNAL(clicked(FontChooser *, const QFont &)), &fontdialog, SLOT(show(FontChooser *, const QFont &)));

当我发布这个问题时,我想,Qt 有一些简单的函数可以做到这一点。可能是我错了吗?:) 问题解决了。谢谢。

于 2013-06-14T06:00:19.603 回答