だから私はルビーqtに100%新しく、Pythonに慣れていて、基本を手に入れましたが、QMenuBarがQt::Widgetだけでは適切に整列しないため、QMainWindowコマンドを理解しようとしています。あなたが教えてくれた2番目に1000%簡単だとわかっていますが、.setCentralWidgetコマンドはrubyでは機能しないようですので、迷っています...
あなたが本当にこれを必要としない質問を受け取った場合、ここに私の「テスト」コードがありますが、私がそれを出さない場合、誰かがwherreee yourrr codddeeのようになります!!! 理解できません?
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