QT学习之路之容器(二)

完成了对QStack的学习,QQueue的学习就轻松多了。

看看效果:

QT学习之路之容器(二)_第1张图片


源码: 

queue.h

#ifndef QUEUE_H
#define  QUEUE_H


#include <QWidget>
#include <QTextEdit>
#include <QQueue>

class QueueWidget : public QWidget
{
	Q_OBJECT
public:
	explicit QueueWidget(QWidget *parent = NULL);

private:
	QQueue<QString>queueStr;
	QTextEdit *textEdit;
};

#endif

queue.cpp

#include "queue.h"
#include <QHBoxLayout>
QueueWidget::QueueWidget(QWidget *parent /*= NULL*/) : QWidget(parent)
{
	///---设置窗口大小
	resize(300, 100);

	///---入队
	queueStr.enqueue("element 1\n");
	queueStr.enqueue("element 2\n");
	queueStr.enqueue("element 3\n");

	///---textEdit
	textEdit = new QTextEdit();

	///---出队
	while (!queueStr.isEmpty())
	{
		textEdit->insertPlainText(queueStr.dequeue());
	}

	///---设置布局
	QHBoxLayout *hLayout = new QHBoxLayout();
	hLayout->addWidget(textEdit);
	hLayout->setContentsMargins(0, 0, 0, 0);

	///---显示布局
	setLayout(hLayout);
}

main.cpp

#include "queue.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	
	QueueWidget win;
	win.show();

	return a.exec();
}

QQueue的操作原则是: 先进先出,后进后出

QQueue入队函数式:enqueue(), 出对函数是:dequeue()

Head() 功能提供访问对的第一个数据,但是不会删除第一个数据

QQueue是继承QListQList的属性同样适用于QQueue



你可能感兴趣的:(Queue,qt)