如果我只有一个 QFontDialog,如何为 2 个(或更多)QFont 更改不同的字体?我怎样才能更有效地做到这一点?我认为为每个 QFont 创建新的 QFontDialog 将非常愚蠢。
问问题
176 次
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 回答