我正在设计一个需要对应用程序进行动态滚动的GUI,并且正在使用GTK(来自Qt),并且具有以下代码:

   Gtk::Window * wnd          = new Gtk::Window();
   Gtk::ScrolledWindow * scr  = new Gtk::ScrolledWindow();
   Gtk::Layout * lay          = new Gtk::Layout();
   Gtk::VBox *   vbox         = new Gtk::VBox();

   wnd->add(*scr);
   scr->add(*vbox);

   for (int i = 0; i < 20; i++)
   {
      Gtk::Button * btn = new Gtk::Button();
      btn->set_label("Click Me");

      vbox->pack_start(*btn);
      btn->show();
   }

   scr->set_kinetic_scrolling(true);

   wnd->show();
   scr->show();
   lay->show();
   vbox->show();

这就是你得到的:

c&#43;&#43; - Gtk/Gtkmm动态滚动-LMLPHP

这个link告诉我以下内容:



我试图用鼠标捕获按钮并进行动态滚动,但是按预期,它不起作用。我还没有触摸屏,我需要用鼠标做实验,有什么办法可以做到这一点?

我还发现了following:
enum InputSource {
  SOURCE_MOUSE,
  SOURCE_PEN,
  SOURCE_ERASER,
  SOURCE_CURSOR,
  SOURCE_KEYBOARD,
  SOURCE_TOUCHSCREEN,
  SOURCE_TOUCHPAD,
  SOURCE_TRACKPOINT,
  SOURCE_TABLET_PAD
}
    An enumeration describing the type of an input device in general terms.

有什么方法可以模拟设备的类型?我想看到它的运作。

最佳答案

您必须有一个触摸事件。使用GtkInspector(Ctrl + Shift + I),然后在可视选项卡中,设置模拟触摸屏(如下所示):

c&#43;&#43; - Gtk/Gtkmm动态滚动-LMLPHP

它应该工作。 More on Gtk Inspector

10-06 01:52