qvbox.h”: No such file or directory

本文介绍在Qt4中由于QVBox类不再可用,如何通过使用QWidget结合QVBoxLayout来实现相同的功能。通过示例代码展示了创建带有垂直布局的窗口,并添加了一个退出按钮。

在QT4的编译环境中编译《Qt入门教程》第三章 家庭价值时候,出现qvbox.h”: No such file or directory

The QVBox class is now only available as Q3VBox in Qt 4. You can achieve the same result as QVBox by creating a QWidget with a vertical layout:

网上是这样解决的:

#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qboxlayout.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QWidget window;               //定义一窗口
    window.resize(200,120);    	  //窗口大小

    QVBoxLayout layout;           //竖着排设计类

    QPushButton quit( "Quit", &window );               //退出按钮
    quit.setFont( QFont( "Times", 18, QFont::Bold ) ); //字体
		// 按钮按下既是退出信号
    QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

    layout.addWidget(&quit);               //
    
    window.setLayout(&layout);             //
    window.show();

    return a.exec();
}




from PySide6 import QtWidgets, QtCore, QtGui from PyQt5.QtGui import QImage, QPixmap import cv2, os, time from threading import Thread import numpy as np from ultralytics import YOLO class MWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() # 设置 UI 界面 self.setupUI() # 连接按钮 self.camBtn.clicked.connect(self.startCamera) self.videoBtn.clicked.connect(self.startVideoFile) self.imagesBtn.clicked.connect(self.startImagesFile) self.stopBtn.clicked.connect(self.stop) self.camComboBox.currentIndexChanged.connect(self.switchCamera) self.selectWeightBtn.clicked.connect(self.selectWeightFile) # 定时器 self.timer_camera = QtCore.QTimer() self.timer_camera.timeout.connect(self.show_camera) self.timer_videoFile = QtCore.QTimer() self.timer_videoFile.timeout.connect(self.show_videoFile) self.timer_imagesFile = QtCore.QTimer() self.timer_imagesFile.timeout.connect(self.show_imagesFile) # 处理帧的队列 self.frameToAnalyze = [] Thread(target=self.frameAnalyzeThreadFunc, daemon=True).start() # 其他参数 self.cap = None self.cameras = [] self.current_camera_idx = -1 self.stopFlag = False self.vframeIdx = 0 self.model = None # 在此处初始化为空,等待选择权重文件 def load_model(self, weightPath): """加载自定义训练的 YOLO 权重文件""" if not weightPath: QtWidgets.QMessageBox.warning(self, "错误", "未选择权重文件,程序将退出") exit() try: # 使用 ultralytics.YOLO 加载权重文件 self.model = YOLO(weightPath) self.textLog.append(f"✅ 成功加载权重: {weightPath}") except Exception as e: QtWidgets.QMessageBox.critical(self, "模型加载失败", f"错误信息: {str(e)}") exit() def setupUI(self): """设置界面""" self.resize(1060, 600) self.setWindowTitle('YOLO-Qt 目标检测') mainLayout = QtWidgets.QVBox
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值