现代Windows版本(我想说7+)拥有我经常看到的这个漂亮的用户界面:
它似乎不是从头开始设计的。在我看来,它已经在Windows API中可用。
可以在Qt中加载吗?小部件名称是什么?或者它只是MFC还是什么?
答案 0 :(得分:3)
这称为TaskDialog,从Windows Vista开始提供。它是纯粹的Win API。
我不知道是否有可用的Qt包装器(编辑:@thomiels answer指向Qt小部件的链接)。
以下是一些本机代码,用于创建类似于屏幕截图中显示的对话框:
#include <Windows.h>
#include <CommCtrl.h>
#pragma comment(lib,"comctl32.lib")
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
int main(int argc, char* argv[])
{
TASKDIALOGCONFIG cfg{ sizeof(cfg) };
const TASKDIALOG_BUTTON buttons[] = {
{ IDOK, L"Do something" },
{ IDCANCEL, L"Do another something" },
};
cfg.hInstance = ::GetModuleHandle( nullptr );
cfg.dwCommonButtons = 0;
cfg.pszMainIcon = TD_INFORMATION_ICON;
cfg.pszMainInstruction = L"Here you can do awesome stuff";
cfg.pszContent = L"What do you want to do?";
cfg.pButtons = buttons;
cfg.cButtons = ARRAYSIZE(buttons);
cfg.dwFlags = TDF_USE_COMMAND_LINKS;
HRESULT hr = TaskDialogIndirect( &cfg, nullptr, nullptr, nullptr );
}
答案 1 :(得分:3)
这三个按钮称为命令按钮或Command Link Control。它最初是作为Windows XP API的一部分引入的。我认为自Windows Vista以来,图片中的表格(在命令链接下有解释文字)可用。
如果您想要便携式代码,则无法在Qt中使用它。 Wine甚至不能显示命令按钮。 (在Wine 2.0中,它们是不可见的,但它们可以被点击)。
更新:Qt中有一个QCommandLinkButton课程。