QT 显示中文、解决发布乱码、获得系统特定目录、获取文件属性、列表控件、屏幕截图显示保存(定时器)、视频直播、右键菜单
生活随笔
收集整理的這篇文章主要介紹了
QT 显示中文、解决发布乱码、获得系统特定目录、获取文件属性、列表控件、屏幕截图显示保存(定时器)、视频直播、右键菜单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
顯示中文
#include <QTextCodec>int main() {QApplication a(argc, argv);QTextCodec::setCodecForLocade(QTextCodec::codecForName("gb2312"));QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb2312"));QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));Widget w;w.show();return a.exec(); }?
解決發布亂碼
復制此文件夾到程序打包目錄
整體打包
?
獲得系統特定目錄
#include <QDir> #include <QtDebug>qDebug() << "homepath" << QDir::homePath(); qDebug() << "rootpath" << QDir::rootPath(); qDebug() << "temppath" << QDir::tempPath();?
獲取文件屬性
#include <QFileDialog> #include <QFileInfo> #include <QDir> #include <QDateTime>QString sttFileName = QFileDialog::getOpenFileName(this, "Open File"), QDir::homePath(); if (strFileName.isEmpty()) {return; } QFileInfo info(strFileName); QString::number(info.size()); //toString("YYYY-MM-dd hh:mm:ss"); QDateTime create = info.created(); QDateTime lastRead = info.lastRead(); //是否為目錄 if (info.isDir()) { }?
列表控件:QListWidget
添加刪除?
#include <QListWidgetItem>//增加 QString str1 = "AAA"; QListWidgetItem *item = new QListWidgetItem ; item->setText(str1); ui->listWidget->addItem(item);//刪除 QListWidgetItem *item = ui->listWidget->takeItem(ui->listWidget->currentRow()); delete item;//全部刪除 int count = 0; while(1) {QListWidget *item = ui->listWidget->takeItem(count);if (item != NULL){delete item;}else{break;} }QListWidget信號
#include <QStringList> #include <QListWidgetItem> #include <QDir> #include <QFileDialog>//構造函數,添加列表圖片 ui->listWidget->setViewMode(QListView::IconMode);QStringList fileNames = QFileDialog::getOpenFileNames(this, "open files", QDir::currentPath());if (fileNames.size() == 0) {return; } else {for(int i = 0; i < fileNames.size(); i++){QListWidget *item = new QListWidget;item->setText(fileNames.at(i));ui->listWidget->addItem(item);} }當你的列表有圖標時,單擊雙擊會觸發消息
Object::connect(ui->listWidget, SIGNAL(itemChanged(QListWidgetItem*), this, SLOT(singleClickedSlot(QListWidgetItem *))));//單擊 void MainWindow::singleClickedSlot(QListWidgetItem *item) {QMessageBox::infomation(NULL, "單擊", item->text); }?
屏幕截圖顯示保存(定時器),并放入剪切板
.h #include <QTimer> #include <QPixmap> #include <QDesktopWidget>QTimer *timer; QPixmap pixmap;//新建按鈕 void MainWindow::on_new_clicked() {if (ui->checkBox->isChecked()){this->hide(); //this->show()this->timer = new QTimer;QObject::connect(this->timer, SIGNAL(timeout()), SLOT(shotScreenSlot()));this->timer->start(ui->spinBox->value()*1000);}else{qApp->beep(); //截圖} }//定時器函數 void MainWindow::shotScreenSlot() {this->pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());ui->screenLabel->setPixmap(this->pixmap.scaled(ui->screenLabel->size()));//獲取剪切板內容打印//QClipboard *clipboard = QApplication::clipboard();//QString orginalText = clipboard->text();//qDebug << orginalText;//獲取被剪切的圖片顯示QClipboard *clipboard = QApplication::clipboard();clipboard->setPixmap(this->pixmap);this->show();this->timer->stop(); }//保存截圖到 我的圖片 #include <QFileDialog> #include <QDesktopServices> #include <QClipboard> //剪切板 void MainWindow::on_save_clicked() {QString strFileName = QFileDialog::getFileName(this, "save file", QDesktopServices::storageLocation(QDesktopService::PicturesLocation));this->pixmap.save(strFileName); }?
視頻直播
保存
.h #include <QTimer> #include <QPixmap> #include <QDesktopWidget>QTimer *timer; QPixmap pixmap;//新建按鈕 void MainWindow::on_new_clicked() {if (ui->checkBox->isChecked()){//this->hide(); //this->show()this->timer = new QTimer;QObject::connect(this->timer, SIGNAL(timeout()), SLOT(shotScreenSlot()));this->timer->start(1000/24);}else{qApp->beep(); //截圖} }//定時器函數 void MainWindow::shotScreenSlot() {this->pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());ui->screenLabel->setPixmap(this->pixmap.scaled(ui->screenLabel->size()));//獲取剪切板內容打印//QClipboard *clipboard = QApplication::clipboard();//QString orginalText = clipboard->text();//qDebug << orginalText;//獲取被剪切的圖片顯示QClipboard *clipboard = QApplication::clipboard();clipboard->setPixmap(this->pixmap);//this->show();//this->timer->stop(); }//保存截圖到 我的圖片 #include <QFileDialog> #include <QDesktopServices> #include <QClipboard> //剪切板 void MainWindow::on_save_clicked() {QString strFileName = QFileDialog::getFileName(this, "save file", QDesktopServices::storageLocation(QDesktopService::PicturesLocation));this->pixmap.save(strFileName); }播放
.h #include <QTimer> #include <QClipboard> #include <QPixmap>QPixmap pixmap; QTimer *timer;//構造函數 this->timer = new QTimer; QObject::connect(this->timer, SIGNAL(timeout()), this, SLOT(fetchPictureSlot())); this->timer->start(200);//獲得圖片 void MainWindow::fetchPictureSlot() {QClipboard *board = QApplication::clipboard();this->pixmap = board->pixmap();ui->playerLabel->setPixmap(this->pixmap.scaked(ui->playerLable->size())); }?
右鍵菜單
.h #include <QContextMenuEvent> #include <QMenu> #include <QAction> #include <QCursor> #include <QProcess>protected:void contextMenuEvent();//創建右鍵菜單 void MainWindow::contextMenuEvent() {QMenu *menu = new QMenu;QActive *active = new QActive(this);QActive *processActive = new QActive(this);QObject::connect(action, SIGNAL(triggerd()), this, SLOT(on_save_clicked()));QObject::connect(addActive, SIGNAL(triggerd()), this, SLOT(startNotpadSlot()));active->setText("Save As");processActive->setText("start notepad");menu->addActive(action);menu->addSeparator(); //中間加一個橫杠menu->addActive(processActive); menu->exec(QCursor::pos()); }//另存為 #include <QFileDialog> #include <QDesktopServices> #include <QClipboard> //剪切板 void MainWindow::on_save_clicked() {QString strFileName = QFileDialog::getFileName(this, "save file", QDesktopServices::storageLocation(QDesktopService::PicturesLocation));this->pixmap.save(strFileName); }//啟動一個進程 void MainWindow::startNotpadSlot() {QProcess *process = new QProcess;process->start("notpad.exe"); }?
總結
以上是生活随笔為你收集整理的QT 显示中文、解决发布乱码、获得系统特定目录、获取文件属性、列表控件、屏幕截图显示保存(定时器)、视频直播、右键菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序算法:简单选择排序算法实现及分析
- 下一篇: 《论文笔记》COVINS: Visual