900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > qt中如何模拟按钮点击_怎么在qt中实现一个按钮列表?

qt中如何模拟按钮点击_怎么在qt中实现一个按钮列表?

时间:2022-12-07 04:14:46

相关推荐

qt中如何模拟按钮点击_怎么在qt中实现一个按钮列表?

有伸手嫌疑!

描述中的"列表" 是啥玩意?Widget中的QListWidget ,还是Qml中的 LIstView?

新人好歹要把问题说清楚,否则老鸟们理都不理你的。可以找找“提问的智慧”一类的文章看看。

Qt本来用的人就少,我决定还是对新人友好一点。

下面这段是连续生成10个QPushButton的代码,已经有不少知识点了:

const int verticalOffset = 50; //垂直方向间隔

const int buttonWidth = 80;

const int buttonHeight = 30;

const int startX = 10; //起始x坐标

const int startY = 10; //起始y坐标

for (int i = 0; i < 10; ++i) {

//每次new一个按钮,设置不同的title,并设定parent,这里的this指代QWidget相关类。不设置会内存泄露哦。

auto btn = new QPushButton(QString("Button %1").arg(i), this);

//设置坐标 (startX, startY + verticalOffset * i)是竖直布局,

//改成(startX + verticalOffset * i,startY)就是水平布局

btn->setGeometry(startX, startY + verticalOffset * i, buttonWidth, buttonHeight);

// 连接信号,用到了QObject::connect和C++11的lambda

connect(btn, &QPushButton::clicked, this, [&, i] (){

qWarning() << "button clicked" << i;

});

}

再来说说QListWidget,往这里面添加东西需要用的是这个api

void QListWidget::addItem(QListWidgetItem *item)

而你需要添加的是按钮,那么你需要自己实现一个子类,继承QListWidgetItem和QPushButton,然后把它当做QListWidgetItem用就可以了。

这种需要先要懂C++ 基础,再看看Qt的API就会了。

再给你一个qml版本的:

import QtQuick 2.6

import QtQuick.Window 2.2

import QtQuick.Controls 2.0

Window {

visible: true

width: 640

height: 480

title: qsTr("Hello World")

readonly property int verticalOffset:50;

readonly property int buttonWidth : 80;

readonly property int buttonHeight : 30;

readonly property int startX : 10;

readonly property int startY : 10;

Repeater {

model: 10

Button {

x: startX

y: startY + verticalOffset * index

text: "Button" + index

onClicked: {

console.log("Button ", index, "clicked");

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。