如何使用GUI在C ++中创建框架/窗口?

时间:2016-07-28 08:55:02

标签: c++ user-interface button window frame

我想基本上用C ++创建一个窗口。它应该有一个类似结构的控制面板,可以选择切换按钮。按钮的图像应来自位图,一个用于ON,另一个用于OFF。

enter image description here

它应该有一系列这样的控制按钮,如控制面板。我应该可以切换ON / OFF。但我要用C ++构建这个小应用程序。请指导我开始并继续?

2 个答案:

答案 0 :(得分:0)

你应该看看这些:

  • Qt的
  • GTK +
  • 的wxWidgets

然后根据您的需要和优先选择。

编辑:

如果您使用的是Windows,则可以使用WinAPI。但是你在另一个操作系统中丢失了代码的可移植性。

答案 1 :(得分:-1)

不幸的是,C ++中的GUI并不那么简单。

您必须在某些时候与操作系统进行交互才能实现这一目标,这意味着您需要使用某种类型的库。

为了更好地回答您的问题(如评论中所述),您需要确定您要定位的操作系统类型?通常的三个是:

  • 的Mac
  • 的Linux

您提供了哪些信息: 我建议使用SFML Library或类似的东西。有可用的教程,它可以很好地跨平台工作。要打开一个窗口,你只需实例化一个类:

sf::Window window(sf::VideoMode(800, 600), "My window");

绘图按钮有点困难。 许多库提供了自己的解决方案,所以我将避免给出一个具体的例子,下面只是伪代码。 通常,您希望在用户单击时捕获,然后在屏幕上获取其鼠标/指针位置(x,y),并根据按钮矩形的每个角的边界进行检查:

if (ButtonPressed())
{
    int currentX = GetMousePositionX();
    int currentY = GetMousePositionY();

    if (currentX > button.Left() &&
        currentX < button.Right() &&
        currentY > button.Top() &&
        currentY < button.Bottom())
    {
        // The button is pressed
    }
}

上面的代码示例假设MousePosition从窗口左上角的0,0开始,不同的库以不同的方式执行。因此,您需要检查您正在使用的库如何实现它。

您可能还想完全考虑使用GUI(如果这只是一个小项目,C ++中的GUI可能会非常困难)。

相关问题