所以我對ruby qt 100%是新手,我已經習慣了python,並且我已經掌握了基礎知識,但是因爲QMenuBar不會正確對齊Qt :: Widget,我一直在嘗試找出QMainWindow命令。我知道它像1000%容易第二你告訴我,但.setCentralWidget命令似乎不工作的紅寶石,所以我只是失去了...設置一個Qt :: MainWindow
這是我的「測試」代碼,如果你真的得到你的問題不需要這個,但如果我不把它放在一些人會像你的孩子一樣!我沒有明白嗎?
require 'Qt'
class Window < Qt::Widget
slots 'slotAbout()', 'slotExit()', 'slotNew()'
def initialize(parent = nil)
super(parent)
#menubar part
@menubar = Qt::MenuBar.new(self)
@menubar.setObjectName('menubar')
@menuFile = Qt::Menu.new(@menubar)
@menuFile.setObjectName('menuFile')
@menuFile.setTitle('File')
@menuHelp = Qt::Menu.new(@menubar)
@menuHelp.setObjectName('menuHelp')
@menuHelp.setTitle('&Help')
@actionNew = Qt::Action.new(self)
@actionNew.setObjectName('actionNew')
@actionNew.setText('New')
@actionExit = Qt::Action.new(self)
@actionExit.setObjectName('actionExit')
@actionExit.setText('Exit')
@actionAbout = Qt::Action.new(self)
@actionAbout.setObjectName('actionAbout')
@actionAbout.setText('About')
@menubar.addAction(@menuFile.menuAction())
@menubar.addAction(@menuHelp.menuAction())
@menuFile.addAction(@actionNew)
@menuFile.addAction(@actionExit)
@menuHelp.addAction(@actionAbout)
@text = Qt::LineEdit.new
@textbox.setStyleSheet "QWidget { color : #f52c01 }"
@textbox.setStyleSheet "QWidget { color : #009600 }"
@text.setStyleSheet "QWidget { color : black }"
@text.setText(tr("Somthing"))
connect(@actionExit, SIGNAL('triggered()'), self, SLOT('slotExit()'))
connect(@actionNew, SIGNAL('triggered()'), self, SLOT('slotNew()'))
connect(@actionAbout, SIGNAL('triggered()'), self, SLOT('slotAbout()'))
#causes some bugs
# statusbar = Qt::StatusBar.new(self)
# statusbar.setObjectName('statusbar')
#examples of groups
oneGroup = Qt::GroupBox.new(tr("GroupOne"))
oneLabel = Qt::Label.new(tr("One"))
twoGroup = Qt::GroupBox.new(tr("GroupTwo"))
twoLabel = Qt::Label.new(tr("One, I mean two!"))
twoslider = Qt::Slider.new(Qt::Horizontal)
twoslider.setRange(0, 5)
twoslider.setValue(0)
#connecting objects to slots
# connect(onething, SIGNAL('thing(int)'), self, SLOT('slotAbout(int)'))
#layout set up using groups
oneLayout = Qt::GridLayout.new
oneLayout.addWidget(oneLabel, 0, 0)
oneLayout.addWidget(@text, 1, 0)
oneGroup.layout = oneLayout
twoLayout = Qt::GridLayout.new
twoLayout.addWidget(twoLabel, 0, 0)
twoLayout.addWidget(twoslider, 1, 0)
twoGroup.layout = twoLayout
layout = Qt::VBoxLayout.new
layout.addWidget(@menubar)
layout.addWidget(oneGroup)
layout.addWidget(twoGroup)
setLayout(layout)
setWindowTitle(tr("Main Title"))
end
def slotExit()
app.exec
end
def slotAbout()
Qt::MessageBox.about(self, tr("About Recent Files"), tr("Weeeaaalllll thar theaes fear-es that make thes that which happen, well just karda happen."))
end
def slotNew()
other = Window.new
other.show()
end
end
app = Qt::Application.new(ARGV)
window = Window.new
window.show
app.exec
我已經嘗試過實施它,但我可以得到的是一個錯誤消息,說「試圖設置QLayout」「窗口」「,已經有一個佈局。」這就是爲什麼我之前發佈我的Qt :: MainWindow嘗試。 – 2013-03-06 15:54:55