0
Qtでこの画像と非常によく似たことをしたいところです。どこの四角をクリックして色を変えることができます。Qtで色を使ってグリッドを作成するには?
Qtでこの画像と非常によく似たことをしたいところです。どこの四角をクリックして色を変えることができます。Qtで色を使ってグリッドを作成するには?
それはQMLでこれを行うにはかなり簡単です。
import QtQuick 2.1
import QtQuick.Window 2.0
Window {
id: root
visible: true
width: 360
height: 500
Column{
Repeater{
model: getRowsNumber(root.height)
delegate: Row{
property int externalIdx: index
Repeater{
model: getColumnsNumber(root.width)
delegate: Rectangle{
property bool selected: false
property color originalColor: (index + externalIdx) % 2 == 0 ? "black" : "white"
width:20
height: 20
color: selected ? "red" : originalColor
border.width: 1
border.color: "black"
MouseArea{
anchors.fill: parent
onClicked: parent.selected = !parent.selected
}
}
}
}
}
}
function getColumnsNumber(width){
return width/20;
}
function getRowsNumber(height){
return height/20;
}
}
あなたはそれがクリックされたときに、各セルはその色が変化する長方形のチェスのようなグリッドを持っている必要がすべてです:以下のコードを見てください。もちろん、それをあなたのニーズに適応させる必要がありますが、それはあなたが始めるのに十分であるはずです。
QTableViewクラスを見てください。これを使用すると、提供されたイメージを表すことができます。次に、クリック信号がセルでエミッションされるたびにQColorDialogクラスを開き、更新する色を選択できます。 – SRD
ユースケースに応じて、これを行うにはいくつかの方法があります。この尺度はどれくらいの大きさですか?提供されたイメージのサイズが常に大きければ、前述のように 'QTableView'は良い賭けです。たくさんの四角形を扱っている場合や色を変えるだけではなく、より多くのやりとりをしたい場合は、 'QGraphicsScene' /' QGraphicsView'やQMLを呼び出すことができます。 –