我对GUI库没有多少经验,而且我正在寻找一个跨平台的,没有控制主循环,并且需要少量代码来设置一个简单的窗口文本输入/输出。我也希望它是开源的。
答案 0 :(得分:3)
我在非主线程中成功使用了GTK。它不像Qt那么光滑,但它肯定会完成工作。另外,它有一些不错的C ++绑定。
例如:
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <thread>
void myCoolThread()
{
// You can setup all of your gtk stuff here...
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
gdk_threads_leave();
}
int main(int argc, char **argv)
{
g_thread_init(NULL);
gdk_threads_init();
gdk_threads_enter();
gtk_init(&argc, &argv);
auto gtkThread = std::thread(myCoolThread);
while(1)
{ sleep(1); } // Do whatever other work here...
gtkThread.join();
return 0;
}
答案 1 :(得分:2)
如果必须是C ++,我建议QT。否则,Java可能会从简单和跨平台的角度为您提供良好的解决方案。
答案 2 :(得分:2)
wxWidgets很好,虽然可能(或可能不)太复杂,无法满足您的需求。我从来没有在Mac,Win和Linux上使用它。
非常容易设置并且是开源的。不确定轻量级,但这取决于你需要它做什么。
答案 3 :(得分:1)
你可以使用tk,如果你不介意写一点C,你可以编写自己的事件循环(为什么你想要这样做是我不明白的事情。)
作为奖励,您将获得一种嵌入式语言(tcl),您也可以使用它来定义GUI。至少根据我的经验,使用动态语言比使用C,C ++或Java(或FORTRAN,开发GUI)要容易得多,但我不会讨论我职业生涯的这一部分: - )