用QT写一个点名器,ui有一个点击按钮和一个显示名字的,点点名按钮后,随机出现一个名字
时间: 2024-12-12 14:21:53 浏览: 11
在Qt中,你可以使用C++编写一个简单的点名器应用。以下步骤将指导你如何实现这个功能:
1. **创建UI**:
使用Qt Creator或直接在`.ui`文件中设计界面。创建一个窗口,添加一个`QPushButton`(用于触发点名操作)和一个` QLabel`(用于显示随机选取的名字)。给这两个部件分别命名为`btn_roll_name` 和 `label_shown_name`。
2. **连接信号和槽**:
在`.cpp`文件中,为按钮的`clicked()`信号创建一个槽函数(slot),当用户点击按钮时,该函数会随机选取一个人名并显示在标签上。代码类似这样:
```cpp
#include <QLabel>
#include <QTimer>
#include <QList>
// 假设你有一个名字列表,存储在QList<QString> names
QList<QString> names;
void onBtnRollNameClicked() {
QTimer::singleShot(0, this, [](){
int randomIndex = qrand() % names.size(); // 随机索引
label_shown_name->setText(names[randomIndex]); // 显示随机名字
});
}
```
3. **初始化名字列表**:
当你的应用启动时,你需要填充名字列表。例如,可以从配置文件、数据库或硬编码一些名字:
```cpp
void MyClass::initNames() {
names << "Alice" << "Bob" << "Charlie" << ...; // 添加名字
}
MyClass::MyClass(QWidget *parent) : QMainWindow(parent) {
initNames();
// ...其他UI设置...
connect(btn_roll_name, &QPushButton::clicked, this, &MyClass::onBtnRollNameClicked);
}
```
4. **运行程序**:
在主函数里,创建`MyClass`实例并展示窗体:
```cpp
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyClass window;
window.show();
return app.exec();
}
```
当用户点击“点名”按钮,会立即(因为用了`QTimer::singleShot`)随机选取一个名字并在标签上显示。注意,如果你有大量名字,这一步可能会稍有延迟,因为需要遍历整个列表来找到随机索引。
阅读全文