Qt를 개발 경험 팁 81-90

출처 : http://www.1994july.club/seo/?p=2803

  1. QColor 완벽한 색상 패키지 Qt는, 예컨대, RGB, HSB, CMY, HSL, 대응에서는 toRGB, toHsv, toCmyk, toHsl 제공된 추가 지지체의 투명성뿐만 아니라, 컬러 값으로 변환 된 16 진수로 변환하는 다양한 지원 형식입니다.
QColor color(255, 0, 0, 100); qDebug() << color.name() << color.name(QColor::HexArgb); //输出 #ff0000 #64ff0000 
  1. 예외의 QVariant 강력한 유형, 종종 QVariant 변환을 사용하는 스토리지 프로파일 동안 보편적 인 유형을 말할 수있다, QVariant 기본값은 때때로, 예를 들어, 정도 등 다양한 변환 toString, toFloat, 함께 제공하지만 필요 QVariant에서 QColor을 이동하지만, 함수 toColor, 우리는 보편적 인 접근 방식을 사용한다이 시간을 제공하지 않습니다.
if (variant.typeName() == "QColor") {
    QColor color = variant.value<QColor>();
    QFont font = variant.value<QFont>();
    QString nodeValue = color.name(QColor::HexArgb);
}
  1. QT QString 바람직 toStdString ()와 CONST 숯 * 사이의 전환. C_str ()을 같이 setProperty는 대신 toLocal8Bit (). ConstData (), 후자의 경우, 문자열 것 올바르지 중국어, 영어 정상.

  2. Qt는 신호 및 슬롯 메커니즘은 때때로 우리가 같은 A 형 부모 클래스와 더 계층 적 형태 인 경우, 구현하거나 갱신 처리 할 수있는 형태로 신호를 많이 통과, Qt는 또한 고유의 핵심 기능 중 하나이며, 매우 빠른 하드웨어입니다 형태 B, 형태 B는 상위 클래스 형태 C는, 폼 신호가 D 형태로 전송 될 경우, C는 폼의 D를 갖고, 상기 질문 양식 B의 창 거쳐야 형성 C하고 정도로 매우 무질서 될 신호와 연관된 각종 신호를 연결 본체 D 작업을 형성하고, 하나의 글로벌 클래스 APPEVENT 예, 여기에 공통 신호까지를 추가하는 것을 고려하고 대응하는 형성 관리 할 결합 APPEVENT 신호 깨끗하고 신선하고 깨끗한 그루브 기능 할 수에 대응 APPEVENT 신호 결합 양식 D.

  3. 중국어를 표시 할 경우, 파일이로드 widgets.qm 수 있으며, 영어로 오른쪽 클릭 메뉴 기본은 QTextEdit하는 Qt는 프로그램은 여러 번역 파일이 아닌 충돌을 설치할 수 있습니다.

  4. 글로벌 Qt는 포커스 전환 신호가 사용자가 입력을 위해 사용될 수 focusChanged있다. QT4 이러한 두 신호 QEvent :: RequestSoftwareInputPanel을 차단한다 값이 기본적으로 설치 입력 상황을 표시 인쇄 a.inputContext 주요 기능으로서, 문맥 기본 입력 방법에 의해 설치가 회귀하고 그래서 QEvent :: CloseSoftwareInputPanel에도 는 글로벌 이벤트 필터는 여전히 두 신호를 인식하지 설치 만 비어있는 입력 방법의 문맥을 설치하는 수단이 될 수있는 주요 기능 (0)에 a.setInputContext을 수행 할 필요가있다.

  5. Qt5.10, 폼 컨트롤 QTableWidget 또는 기본 QTableView 최소 열 너비가 15으로 변경 한 후에는 적용되지 않습니다 너무 작은 폭 테이블 열을 설정하면 QT의 새로운 버전,하는을 수 있도록, 이전 버전, 0 최소 열 폭. 그래서 당신은 설정해야 폭이 작은 열을 설정하려면 UI-> tableView-> horizontalHeader () -> setMinimumSectionSize (0);

  6. QT 소스 일부 비공개 검정 기술은 모듈에 대응하는 개인에 숨겨진 직접 사용할 수없는 내장 등의 GUI 전용 위젯 사설 같은 압축 파일을 압축 해제 클래스 QZipReader, GUI - 전용 모듈에 압축 타입 QZipWriter 등 등 , 필요가 QT에 + = GUI - 개인 사용을 프로를 소개합니다.

#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h" QZipReader reader(dirPath); QString path(""); //解压文件夹到当前目录 reader.extractAll(path); //文件夹名称 QZipReader::FileInfo fileInfo = reader.entryInfoAt(0); //解压文件 QFile file(filePath); file.open(QIODevice::WriteOnly); file.write(reader.fileData(QString::fromLocal8Bit("%1").arg(filePath))); file.close(); reader.close(); QZipWriter *writer = new QZipWriter(dirPath); //添加文件夹 writer->addDirectory(unCompress); //添加文件 QFile file(filePath); file.open(QIODevice::ReadOnly); writer->addFile(data, file.readAll()); file.close(); writer->close(); 
  1. 이론적으로 직렬 및 네트워크 전송 데이터는 기본적으로 비동기 수신하고, 자동, 예약 운영 체제가 붙어 인터페이스를받지 않습니다, 주 스레드 걸린 트랜시버 인터페이스가 온라인으로 데이터를 말하는 사람들은 몇 계란 진짜 시간이 소요되는 작업으로 당겨질 그리고 수술 후 치료보다는 전송하고, 데이터 연산 처리의 작은 금액 중 일부는 일반적으로 핸들에 사용 스레드에 권장되지 않습니다 프로젝트 스케줄링 오버 헤드 스레드의 요구에 데이터를 수신 내부 던져 스레드 모든 것을 할 스레드는 만병 통치약이 아니다. 정말 같은 인코딩 만 디코딩과 같은 약간의 시간이 소요되는 작업을 필요한 경우에만 스레드를 이동해야합니다.

  2. 생성자의 폭과 높이 가능성이 잘못 될 것입니다, 컨트롤이 먼저 떨어져 있음을 유의하십시오, 컨트롤 만 첫 공연 후 정확한 폭과 높이 값을 설정, 나중에 인수 보여 먼저 필요가 올바른지 가져옵니다 같은 QTabWidget 같은 일부 컨테이너 컨트롤이 표시되지 후 프로그램이 좋은 시작 인 경우 나중에 공연 후 페이지에 컨트롤,하지만 당신은 너비를 가져 가서 방법은 첫 공연이다 절대 안전한 높이가 아마 정확하지, 생성자 또는 프로그램 좋은 시작되지 않습니다 나중에 취득합니다.

추천

출처www.cnblogs.com/1994july/p/12057020.html