Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否为每个QFont新建QFont对话框?_C++_Qt - Fatal编程技术网

C++ 是否为每个QFont新建QFont对话框?

C++ 是否为每个QFont新建QFont对话框?,c++,qt,C++,Qt,如果只有一个QFontDialog,如何更改2个(或更多)QFont的不同字体?我怎样做才能更有效率?我认为,为每个QFont创建新的QFontDialog将是非常愚蠢的。如果要同时执行此操作,需要在表单中添加两个QFontDialog。否则,您可以使用one QFontDialog对象,在显示对话框之前,只需使用setCurrentFont()设置当前字体即可 因此,为每个QFont创建QFontDialog不是最佳方法(太多-超过100个-QFont-s和QFontDialog-s将占用大量

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

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

因此,为每个QFont创建QFontDialog不是最佳方法(太多-超过100个-QFont-s和QFontDialog-s将占用大量内存)。更高效-为QFontDialog和QFont创建特定的信号和插槽(在我的情况下,是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有一些简单的函数来完成这项工作。也许我错了?:) 问题解决了。Thx