Ⅰ Qt如何實現word的功能,插入的圖片可以拖拽
你是說在一個Widget上面放一張圖片然後可以拖動這個帳圖片嗎?
很簡單:
首先你需要一個容器來裝這張圖片,首選QLabel
然後重新定義這個QLabel,重寫他的MouseEvent,點擊移動就可以拖動改QLabel
Ⅱ QT中如何實現一個TreeWidget的拖拽功能
setDragDropMode(QAbstractItemView::InternalMove)
Ⅲ 怎麼用ps往靜圖里嵌動圖 我的是ps3,帶QT
自重啊是PS CS3,你打個PS3就會到這個分類。。
Ⅳ qt creator,如何對QGraphicsView添加右鍵觸發的卷軸拖拽功能
相關開發中碰到問題代碼中已有向導性開發解說,太深入的過程暫時沒有時間研究,見諒,僅當入門小例.<下文附別人總結詳細解說>
MyWidget.h文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
Ⅳ 關於PS軟體導入動態素材的問題……【註:已安裝QT、】
CS5能導入 gif 格式,導入以後所有圖層全部在圖層中,根據你上傳的圖片看,是你的文件類型沒有選擇,點擊文件類型右邊的小三角,選擇所有文件就OK了
Ⅵ QT 如何傳圖片
圖片其實就是16進制代碼組成,從0xff 0xd8開始,0xff 0xd9結束;
傳輸只要傳輸16進制數據就可以了,再服務端再解析代碼
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int find_start_pos(unsigned char *buf,int len){
int i;
for(i=0;i<len;i++){
if(buf[i+1]==0xd8 && buf[i]==0xff){
return i;
}
}
return -1;
}
int find_end_pos(unsigned char *buf,int len){
int i;
for(i=0;i<len;i++){
if(buf[i]==0xff && buf[i+1]==0xd9){
return i+2;
}
}
return -1;
}
void http_request(char *ip,int port){
unsigned char buffer[1024]={0};
unsigned char sendbuf[]="GET /?action=stream HTTP/1.1\r\n\r\n";
struct sockaddr_in addr;
int sd=socket(AF_INET,SOCK_STREAM,0);
if(sd<0){
perror("socket");
return;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
int ret=connect(sd, (struct sockaddr *)&addr, sizeof(addr));
if(ret<0){
perror("connect");
close(sd);
return;
}
ret=write(sd,sendbuf,strlen(sendbuf));
ret=read(sd,buffer,1024);
printf("%s\n",buffer);
int fd = open("./test.mjpeg",O_WRONLY|O_CREAT,0777);
if(fd < 0){
perror("open file"),exit(-1);
}
unsigned char *mbuf=(unsigned char *)malloc(1024*30);
unsigned char soi[2]={0xff,0xd8};
unsigned char eoi[2]={0xff,0xd9};
int size = 0;
while(1){
int ret = read(sd,buffer,1024);
memcpy(mbuf+size,buffer,ret);
size+=ret;
int psoi=find_start_pos(mbuf,size);
if(psoi==-1){
continue;
}
int peoi=find_end_pos(mbuf,size);
if(peoi==-1){
continue;
}
write(fd,mbuf+psoi,peoi-psoi-1);
break;
}
close(fd);
close(sd);
}
int main(){
http_request("127.0.0.1",8080);
//http_request("172.30.2.2",80);
return 0;
}
Ⅶ PS打開圖片無法顯示,但是拖動整個圖層的時候會顯示,放下來又變沒有東西了。
可能是你打開的界面設置成了透明的了,現實的就是透明的,重新設一下就好了,你試試吧!
Ⅷ qml刪除載入的文件夾載入qrc圖片
在目錄里刪除,文件夾依然存在,載入圖片也會報錯。
第一,在文件夾中打開工程目錄,刪除資源文件夾,再用QTCreater打開項目,工程目錄中的qml。qrc,拖到QTCreater,第二,拖拽後,會出現以下界面,點擊RemovingMissingFiles,關閉項目,重新打開就可以了。
在QT的開發中需要添加圖片等資源文件,以下是添加方法。1工程目錄中新建文件夾,命名自定義(如my_resource),需要至少添加一個圖片或其他文件。2打開項目,選擇根目錄,點擊右鍵,添加現有文件,選擇圖片。
Ⅸ Qt中的拖拽事件是復制還是剪切
根據應用的區域的不同提供了復制或移動文字兩種實現方式:
在同一窗口中移動或復制項
選定要移動或復制的項。
2.請執行下列操作之一:
● 若要進行移動,請單擊「常用」工具欄上的「剪切」或用快捷鍵 Ctrl+ X。
● 若要進行復制,請單擊「常用」工具欄上的「復制」或用快捷鍵 Ctrl+ C。
3.單擊要顯示所選項的位置。
4.單擊「常用」工具欄上的「粘貼」或用快捷鍵 Ctrl+ V。
在不同窗口間拖動項
1.選定要移動或復制的項。
2.請執行下列操作之一:
● 要移動信息時:將所選項直接拖動。
● 要復制信息時:按住 Ctrl 拖動。
3.拖動所選項至目標文檔的文檔標簽處,並成為活動狀態。
4.將移動或復制的項放到目標文檔的新位置。
5.釋放滑鼠。
Ⅹ Qt中如何利用 png 圖片來實現自定義形狀的窗口
使用 Qt::WindowFlags 可以實現一些不同類型的窗口,如:用 Qt::FramelessWindowHint 來實現無邊框窗口,用 Qt::Popup 來實現彈出式的窗口,用 Qt::Tool 來實現工具窗口,用Qt::CustomizeWindowHint 來關閉窗口標題欄以及與 Qt::WindowCloseButton(添加關閉按鈕),Qt::WindowMaximumButtonSize(添加最大化按鈕)聯用來建立只有關閉按鈕和最大化按鈕的窗口,用 Qt::WindowStaysOnTopHint 使窗口永遠在最前端等。 Qt::WidgetAttribute 使窗口支持透明背景以及在關閉後主動銷毀。其它一些常用的 Attribute 有:Qt::WA_AcceptDrops 使 widget 支持拖拽操作,Qt::WA_MouseTracking 使 widget 及時響應滑鼠移動事件(MouseMoveEvent)。 Qt::setMask() 函數對窗口進行部分區域遮掩來實現各種形狀的窗口。部分代碼解釋:頭文件: 1:#ifndef SHAPEDWIDGET_H 2:#define SHAPEDWIDGET_H 3: 4:#include <QWidget> 5:class QPoint; 6:class QPixmap; 7:class ShapedWidget : public QWidget 8: { 9: Q_OBJECT 10:public: 11:explicit ShapedWidget(QWidget *parent = 0); 12: ~ShapedWidget(); 13: 14:private slots: 15:void changeSkin(); 16: 17:protected: 18:void mousePressEvent(QMouseEvent *); 19:void mouseMoveEvent(QMouseEvent *); 20:void paintEvent(QPaintEvent *); 21: 22:private: 23:void initData(); 24:void initVisualComponents(); 25:void setupContextMenu(); 26: 27: QPoint* dragPos_; 28: QPixmap* backgroundPixmap_; 29: }; 30: 31:#endif // SHAPEDWIDGET_H構造: 1: ShapedWidget::ShapedWidget(QWidget *parent) : 2: QWidget(parent, Qt::FramelessWindowHint) //無邊框窗體 3: { 4: initData(); //初始化數據,這個demo裡面就兩個,具體下面有解釋 5: initVisualComponents(); //初始化私有可視部件,這個demo裡面沒有私有的其它部件,所以只做了窗口的一些屬性設置 6: setupContextMenu(); //設置右鍵菜單,分配各種QAction內存空間以及連接SIGNALS和SLOTS 7: setAttribute(Qt::WA_DeleteOnClose); //關閉事件發生後就主動從內存中銷毀窗口 8: setAttribute(Qt::WA_TranslucentBackground); //透明背景支持 9: } 拖拽移動窗體(下面有圖示): 1:void ShapedWidget::mousePressEvent(QMouseEvent *event) 2: { 3:if(event->button() == Qt::LeftButton) 4: { 5: *dragPos_ = event->globalPos() - frameGeometry().topLeft(); 6: event->accept(); 7: } 8: } 9: 10:void ShapedWidget::mouseMoveEvent(QMouseEvent *event) 11: { 12:if(event->buttons() & Qt::LeftButton) 13: { 14: move(event->globalPos() - *dragPos_); 15: event->accept(); 16: } 17: } 窗口繪制: 1:void ShapedWidget::paintEvent(QPaintEvent *) 2: { 3: QPainter painter(this); 4: painter.fillRect(0, 0, backgroundPixmap_->width(), backgroundPixmap_->height(), *backgroundPixmap_); 5: } 更換皮膚: 1:void ShapedWidget::changeSkin() 2: { 3: QAction* source = qobject_cast<QAction*>(sender()); //獲取發送該信號的信號源,並轉換對象 4: backgroundPixmap_->load(source->data().toString()); //因為給每個 QAction 賦了圖片的地址的字元串 5://所以可以通過 data() 來獲取該值,並更新背景圖片的內容 6: resize(backgroundPixmap_->width(), backgroundPixmap_->height()); //窗口大小盡可能小