1

我正在开发一个使用 ruby​​ 和 qt 作为前端的应用程序。我使用 qtdesigner 绘制 gui 并使用 rbuic4 转换代码。但是我无法对放置在主程序上的按钮进行任何操作。我创建了 main.rb 并使用 require './muprogramm.rb' 调用了生成的代码。这是打开按钮 mbusb_close(对象名称)的文件对话框的示例代码

require  './muprogramm.rb'
require 'Qt4'
class Form < Qt::Widget
    slots 'file_dialog()'
    def initialize(parent = nil)
    super
        @ui = Ui_Frame.new
        @ui.setupUi(self)
        Qt::Object.connect(@ui.mbusb_close, SIGNAL('clicked()'), self, SLOT('file_dialog()'))
    end
    def file_dialog
        f = Qt::FileDialog
        text = File.new(f.getOpenFileName).read
        #@ui.editor_window.setText 'WikiBooks: Ruby'
    end
end
 a = Qt::Application.new(ARGV)
    u = Ui_Frame.new
    w = Qt::Frame.new
    u.setupUi(w)
    w.show
 a.exec

网络中可用的资源是模糊的。任何帮助表示赞赏

4

1 回答 1

0

只需使用您直接创建的子类:

require  './muprogramm.rb'
require 'Qt4'
class Form < Qt::Widget
    slots 'file_dialog()'
    def initialize(parent = nil)
    super
        @ui = Ui_Frame.new
        @ui.setupUi(self)
        Qt::Object.connect(@ui.mbusb_close, SIGNAL('clicked()'), self, SLOT('file_dialog()'))
    end
    def file_dialog
        f = Qt::FileDialog
        text = File.new(f.getOpenFileName).read
        #@ui.editor_window.setText 'WikiBooks: Ruby'
    end
end
 a = Qt::Application.new(ARGV)
    w = Form.new
    w.show
 a.exec
于 2013-11-05T02:51:51.277 回答