QListWidget--39

本文介绍了Qt中QListWidget的使用方法,包括如何创建、添加项目及与QLabel交互等基本操作,并展示了如何通过代码实现一个简单的示例。
前面一节简单概述著名的MVC模式在Qt中的实现,现在我们从QListWidget开始了解Qt提供的一系列方便的item view类。
 
第一个要说的是QListWidget。这个类为我们展示一个List列表的视图。下面还是先看代码:
 
listwidget.h
#ifndef LISTWIDGET_H
#define LISTWIDGET_H

#include <QtGui>

class ListWidget : public QWidget
{
public :
        ListWidget();

private :
        QLabel *label;
        QListWidget *list;
};

#endif // LISTWIDGET_H
 
listwidget.cpp
#include "listwidget.h"

ListWidget::ListWidget()
{
        label = new QLabel;
        label->setFixedWidth(70);
        list = new QListWidget;
        list->addItem( new QListWidgetItem(QIcon( ":/images/line.PNG" ), tr( "Line" )));
        list->addItem( new QListWidgetItem(QIcon( ":/images/rect.PNG" ), tr( "Rectangle" )));
        list->addItem( new QListWidgetItem(QIcon( ":/images/oval.PNG" ), tr( "Oval" )));
        list->addItem( new QListWidgetItem(QIcon( ":/images/tri.PNG" ), tr( "Triangle" )));
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(label);
        layout->addWidget(list);

        setLayout(layout);

        connect(list, SIGNAL(currentTextChanged(QString)), label, SLOT(setText(QString)));
}
 
main.cpp
#include <QtGui>
#include "listwidget.h"

int main( int argc, char *argv[])
{
        QApplication a(argc, argv);
        ListWidget lw;
        lw.resize(400, 200);
        lw.show();
         return a.exec();
}
 
一共三个文件,但是都比较清晰。我们先建立了一个ListWidget类,然后在main函数中将其显示出来。
 
ListWidget类中包含一个QLabel对象和一个QListWidget对象。创建这个QListWidget对象很简单,只需要使用 new运算符创建出来,然后调用addItem()函数即可将item添加到这个对象中。我们添加的对象是QListWidgetItem的指针,它有四 个重载的函数,我们使用的是其中的一个,它接受两个参数,第一个是QIcon引用类型,作为item的图标,第二个是QString类型,作为这个 item后面的文字说明。当然,我们也可以使用insertItem()函数在特定的位置动态的增加item,具体使用请查阅API文档。最后,我们将这 个QListWidget的currentTextChanged()信号同QLabel的setText()连接起来,这样,在我们点击item的时 候,label上面的文字就可以改变了。
 
 
我们还可以设置viewModel这个参数,来确定使用不同的视图进行显示。比如,我们使用下面的语句:
 
list->setViewMode(QListView::IconMode);
 
再来看看程序界面吧!
 

本文出自 “豆子空间 ” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/251391

以下P-01到P-39为一个输入信号为两个开关量,信号1和信号2,输出为两个继电器,继电器1和继电器2的智能继电器的部分功能逻辑: P-01:有信号继电器工作,信号消失继电器停止 P-02:给信号继电器工作,再给信号继电器停止 P-03:给信号,继电器工作A秒自动停止;在延时期间触发无效。 P-04:给信号,继电器工作A秒自动停止;在延时期间触发重新计时 P-05:给信号,继电器工作A秒自动停止;在延时期间触发叠加计时。 P-06:给信号,继电器工作A秒自动停止;在延时期间触发复位 P-07:有信号,继电器工作,输入信号消失,开始计时A秒后继电器停止, P-08:通电后,继电器工作,延时A秒后断电,直到下次通电。 P-09:给信号,继电器断开,延时A秒后,继电器工作。 P-10:有信号超过A秒后,继电器工作,信号消失,继电器停止。 P-11:信号消失超过A秒后,继电器工作,有信号,继电器停止、 P-12:有信号超过A秒后,继电器工作,信号消失超过A秒后,继电器停止。 P-13:有信号超过A秒后,继电器工作,再次有信号超过A秒后,继电器停止。 P-14:有信号继电器工作A秒后停止,信号消失继电器再次工作A秒后停止。 P-15:检测有脉冲信号,继电器工作;没有脉冲信号,继电器延时A秒停止, P-16:通电后,延时A秒后,继电器工作,直到断电。 P-17:通电后,继电器工作A秒,断开B秒,无限循环。 P-18:有信号,继电器工作A秒,断开B秒,无限循环。 P-19:给信号,继电器工作A秒,断开B秒,无限循环,再给信号终止循环。 P-20:通电后,延时A秒后,继电器工作,工作B秒后停止。 P-21:给信号,延时A秒后,继电器工作,工作B秒后停止。 P-22:有信号,超过A秒后,继电器工作,工作B秒后停止。 P-23:有信号,继电器工作A秒后停止,停止后再计时B秒,在A+B秒内信号触发无效。 P-24:有信号,继电器工作A秒后停止,停止B秒后再次工作,A秒后停止。 P-25:给信号,继电器工作延时A秒后断开。 P-26:信号消失,延时A秒后,继电器工作,工作B秒后停止。 P-27:信号消失,超过A秒后,继电器工作,工作B秒后停止。 P-28:给信号超过A次后,继电器工作B秒后停止。 P-29:通电后,继电器1工作A秒断开后,继电器2工作B秒断开。 P-30:给信号1,继电器1工作A秒断开后,继电器2工作B秒断开。 P-31:给信号1,继电器1工作A秒后,继电器2开始工作,B秒后继电器1和2同时断开。 P-32:通电后,继电器1工作A秒后停止,停止B秒后,继电器2工作,工作C秒后,停止D秒,无限循环。 P-33:给信号1,继电器1工作;延时A秒后继电器2工作;延时B秒后;继电器2停止;延时C秒后;继电器1停止。 P-34:给信号1,继电器1工作;延时A秒后继电器1停止;延时B秒后;继电器2工作;延时C秒后;继电器2停止。 P-35:给信号1;延时A秒后继电器1工作;延时B秒后;继电器2工作;延时C秒后:继电器1和继电器2停止。 P-36:给信号1;延时A时间后继电器1工作;延时B秒后;继电器1停止继电器2工作:延时C秒后:继电器2停止。 P-37:给信号1:继电器1和继电器2同时工作,继电器1工作A秒停止,继电器2工作B秒停止。 P-38:给信号1:延时A秒后继电器1和继电器2同时工作,B秒后继电器1和继电器同时停止。 P-39:给信号1:延时A秒后继电器1工作,给信号2,延时B秒后继电器2工作,继电器1停止。 对P-01到P-39功能的相关名词解释:给信号或触发为输入高电平到低电平或输入低电平到高电平。有信号为输入为高电平或输入为低电平。再次有信号为输入与前一次有信号的变化一致。信号消失为输入高电平变为低电平或输入低电平变为高电平。有脉冲信号为输入高低电平来回变化,变化频率为2-100Hz,无脉冲信号为输入无信号变化。通电后为程序开始运行。 设计一个小程序,来模拟智能继电器功能逻辑。用户可以在小程序操作页面通过选项配置参数可以实现以上P-01到P-39功能逻辑,不限于以上功能逻辑,主要的选项包括触发条件,执行动作,触发条件可以有高电平到低电平,输入低电平到高电等,执行动作可以有继电器1动作,继电器2动作,继电器1停止,延时等,选项的内容根据需要进行添加,也可以添加其他选项,其他选项不超过3个,重复的动作也可以是一个任务。 参数配置和操作应该通俗易懂,操作简单。 要实现以上目标,小程序应该添加哪些选项,选项的内容因该有哪些,请通过小程序展示出来,不需要功能实现,只需展示UI
07-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值