Class: TetrixWindow

Inherits:
Qt::Widget show all
Defined in:
ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb

Instance Method Summary collapse

Methods inherited from Qt::Widget

#raise

Methods inherited from Qt::Base

#%, #&, #*, #**, #+, #-, #-@, #/, #<, #<<, #<=, #==, #>, #>=, #>>, #QCOMPARE, #QEXPECT_FAIL, #QFAIL, #QSKIP, #QTEST, #QVERIFY, #QVERIFY2, #QWARN, #^, ancestors, #is_a?, #methods, private_slots, #protected_methods, #public_methods, q_classinfo, q_signal, q_slot, signals, #singleton_methods, slots, #|, #~

Constructor Details

#initialize(parent = nil) ⇒ TetrixWindow

Returns a new instance of TetrixWindow.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb', line 30

def initialize(parent = nil)
    super(parent)
    @board = TetrixBoard.new(self)

    @nextPieceLabel = Qt::Label.new
    @nextPieceLabel.frameStyle = Qt::Frame::Box | Qt::Frame::Raised
    @nextPieceLabel.alignment = Qt::AlignCenter.to_i
    @board.nextPieceLabel = @nextPieceLabel

    @scoreLcd = Qt::LCDNumber.new(5)
    @scoreLcd.segmentStyle = Qt::LCDNumber::Filled
    @levelLcd = Qt::LCDNumber.new(2)
    @levelLcd.segmentStyle = Qt::LCDNumber::Filled
    @linesLcd = Qt::LCDNumber.new(5)
    @linesLcd.segmentStyle = Qt::LCDNumber::Filled

    @startButton = Qt::PushButton.new(tr("&Start"))
    @startButton.focusPolicy = Qt::NoFocus
    @quitButton = Qt::PushButton.new(tr("&Quit"))
    @quitButton.focusPolicy = Qt::NoFocus
    @pauseButton = Qt::PushButton.new(tr("&Pause"))
    @pauseButton.focusPolicy = Qt::NoFocus

    connect(@startButton, SIGNAL('clicked()'), @board, SLOT('start()'))
    connect(@quitButton , SIGNAL('clicked()'), $qApp, SLOT('quit()'))
    connect(@pauseButton, SIGNAL('clicked()'), @board, SLOT('pause()'))
    connect(@board, SIGNAL('scoreChanged(int)'), @scoreLcd, SLOT('display(int)'))
    connect(@board, SIGNAL('levelChanged(int)'), @levelLcd, SLOT('display(int)'))
    connect(@board, SIGNAL('linesRemovedChanged(int)'),
            @linesLcd, SLOT('display(int)'))

    layout = Qt::GridLayout.new do |l|
        l.addWidget(createLabel(tr("NEXT")), 0, 0)
        l.addWidget(@nextPieceLabel, 1, 0)
        l.addWidget(createLabel(tr("LEVEL")), 2, 0)
        l.addWidget(@levelLcd, 3, 0)
        l.addWidget(@startButton, 4, 0)
        l.addWidget(@board, 0, 1, 6, 1)
        l.addWidget(createLabel(tr("SCORE")), 0, 2)
        l.addWidget(@scoreLcd, 1, 2)
        l.addWidget(createLabel(tr("LINES REMOVED")), 2, 2)
        l.addWidget(@linesLcd, 3, 2)
        l.addWidget(@quitButton, 4, 2)
        l.addWidget(@pauseButton, 5, 2)
    end

    setLayout(layout)

    setWindowTitle(tr("Tetrix"))
    resize(550, 370)
end

Instance Method Details

#createLabel(text) ⇒ Object



82
83
84
85
86
# File 'ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb', line 82

def createLabel(text)
    lbl = Qt::Label.new(text)
    lbl.alignment = Qt::AlignHCenter | Qt::AlignBottom
    return lbl
end