diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/C和C++扩展/pydext/.vs/pydext/v15/.suo b/C和C++扩展/pydext/.vs/pydext/v15/.suo new file mode 100644 index 0000000..9fa5922 Binary files /dev/null and b/C和C++扩展/pydext/.vs/pydext/v15/.suo differ diff --git a/C和C++扩展/pydext/.vs/pydext/v15/Browse.VC.db b/C和C++扩展/pydext/.vs/pydext/v15/Browse.VC.db new file mode 100644 index 0000000..0839577 Binary files /dev/null and b/C和C++扩展/pydext/.vs/pydext/v15/Browse.VC.db differ diff --git a/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/7828e06aa30c0d3c/PYDEXT.ipch b/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/7828e06aa30c0d3c/PYDEXT.ipch new file mode 100644 index 0000000..b59817e Binary files /dev/null and b/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/7828e06aa30c0d3c/PYDEXT.ipch differ diff --git a/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/d5916c660b4c4bac/PYDEXT.ipch b/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/d5916c660b4c4bac/PYDEXT.ipch new file mode 100644 index 0000000..76f9a76 Binary files /dev/null and b/C和C++扩展/pydext/.vs/pydext/v15/ipch/AutoPCH/d5916c660b4c4bac/PYDEXT.ipch differ diff --git a/C和C++扩展/pydext/Release/pydext.exp b/C和C++扩展/pydext/Release/pydext.exp new file mode 100644 index 0000000..6f702ad Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.exp differ diff --git a/C和C++扩展/pydext/Release/pydext.iobj b/C和C++扩展/pydext/Release/pydext.iobj new file mode 100644 index 0000000..d43c6df Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.iobj differ diff --git a/C和C++扩展/pydext/Release/pydext.ipdb b/C和C++扩展/pydext/Release/pydext.ipdb new file mode 100644 index 0000000..781ae8f Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.ipdb differ diff --git a/C和C++扩展/pydext/Release/pydext.lib b/C和C++扩展/pydext/Release/pydext.lib new file mode 100644 index 0000000..1845d61 Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.lib differ diff --git a/C和C++扩展/pydext/Release/pydext.pdb b/C和C++扩展/pydext/Release/pydext.pdb new file mode 100644 index 0000000..cf73703 Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.pdb differ diff --git a/C和C++扩展/pydext/Release/pydext.pyd b/C和C++扩展/pydext/Release/pydext.pyd new file mode 100644 index 0000000..c37dfe1 Binary files /dev/null and b/C和C++扩展/pydext/Release/pydext.pyd differ diff --git a/C和C++扩展/pydext/pydext.sln b/C和C++扩展/pydext/pydext.sln new file mode 100644 index 0000000..af0699f --- /dev/null +++ b/C和C++扩展/pydext/pydext.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27428.2037 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pydext", "pydext\pydext.vcxproj", "{023C9F4B-FECC-430A-81D2-7044FAFF15D0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Debug|x64.ActiveCfg = Debug|x64 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Debug|x64.Build.0 = Debug|x64 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Debug|x86.ActiveCfg = Debug|Win32 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Debug|x86.Build.0 = Debug|Win32 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Release|x64.ActiveCfg = Release|x64 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Release|x64.Build.0 = Release|x64 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Release|x86.ActiveCfg = Release|Win32 + {023C9F4B-FECC-430A-81D2-7044FAFF15D0}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FB11C75A-F832-45BC-BEB7-40ED2F7A3A3B} + EndGlobalSection +EndGlobal diff --git a/C和C++扩展/pydext/pydext/Release/pydext.Build.CppClean.log b/C和C++扩展/pydext/pydext/Release/pydext.Build.CppClean.log new file mode 100644 index 0000000..dc18046 --- /dev/null +++ b/C和C++扩展/pydext/pydext/Release/pydext.Build.CppClean.log @@ -0,0 +1,15 @@ +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\vc141.pdb +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.obj +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.pyd +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.pdb +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.lib +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.exp +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.ipdb +f:\python\github\pyqt\c和c++扩展\pydext\release\pydext.iobj +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\cl.command.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\cl.read.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\cl.write.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\link.command.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\link.read.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\link.write.1.tlog +f:\python\github\pyqt\c和c++扩展\pydext\pydext\release\pydext.tlog\pydext.write.1u.tlog diff --git a/C和C++扩展/pydext/pydext/Release/pydext.log b/C和C++扩展/pydext/pydext/Release/pydext.log new file mode 100644 index 0000000..91e2402 --- /dev/null +++ b/C和C++扩展/pydext/pydext/Release/pydext.log @@ -0,0 +1,7 @@ +F:\Python\Github\PyQt\C和C++扩展\pydext\pydext\pydext.vcxproj(201,5): warning : Python debug symbols are not installed. Installing the symbols through the Python installer is strongly recommended. + pydext.c + 正在创建库 F:\Python\Github\PyQt\C和C++扩展\pydext\Release\pydext.lib 和对象 F:\Python\Github\PyQt\C和C++扩展\pydext\Release\pydext.exp + 正在生成代码 + All 5 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. + 已完成代码的生成 + pydext.vcxproj -> F:\Python\Github\PyQt\C和C++扩展\pydext\Release\pydext.pyd diff --git a/C和C++扩展/pydext/pydext/Release/pydext.obj b/C和C++扩展/pydext/pydext/Release/pydext.obj new file mode 100644 index 0000000..9f33460 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.obj differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.command.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.command.1.tlog new file mode 100644 index 0000000..c4f43b9 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.command.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.read.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.read.1.tlog new file mode 100644 index 0000000..856f523 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.read.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.write.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.write.1.tlog new file mode 100644 index 0000000..c491a59 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/CL.write.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.command.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.command.1.tlog new file mode 100644 index 0000000..33707fe Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.command.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.read.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.read.1.tlog new file mode 100644 index 0000000..08e480b Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.read.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.write.1.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.write.1.tlog new file mode 100644 index 0000000..8162e17 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/link.write.1.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.lastbuildstate b/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.lastbuildstate new file mode 100644 index 0000000..c5dfca2 --- /dev/null +++ b/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.16299.0 +Release|Win32|F:\Python\Github\PyQt\C和C++扩展\pydext\| diff --git a/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.write.1u.tlog b/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.write.1u.tlog new file mode 100644 index 0000000..95734c0 Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/pydext.tlog/pydext.write.1u.tlog differ diff --git a/C和C++扩展/pydext/pydext/Release/vc141.pdb b/C和C++扩展/pydext/pydext/Release/vc141.pdb new file mode 100644 index 0000000..85d0abd Binary files /dev/null and b/C和C++扩展/pydext/pydext/Release/vc141.pdb differ diff --git a/C和C++扩展/pydext/pydext/pydext.c b/C和C++扩展/pydext/pydext/pydext.c new file mode 100644 index 0000000..7c146c6 --- /dev/null +++ b/C和C++扩展/pydext/pydext/pydext.c @@ -0,0 +1,92 @@ +#include + +// ޲ +PyObject *pydext_hello(PyObject *self) { + return Py_BuildValue("s", "this is hello function"); +} + +// Խͨ +// ͽһ +PyObject *pydext_hello2(PyObject *self, PyObject *args) { + char *name = ""; + + if (!PyArg_ParseTuple(args, "s", &name)) { + PyErr_SetString(PyExc_ValueError, "parameter must be str"); + return NULL; + } + return Py_BuildValue("s", name); +} + +PyDoc_STRVAR(pydext_sum_doc, "sum(x, y, minus=False)\ +\ +sum function, if minus=True then return -(x+y)"); +// Խָͨ +PyObject *pydext_sum(PyObject *self, PyObject *args, PyObject *kwargs) { + /* Shared references that do not need Py_DECREF before returning. */ + int x = 0; + int y = 0; + int minus = 0; + + /* Parse positional and keyword arguments */ + static char* keywords[] = { "x", "y", "minus", NULL }; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii|$p", keywords, &x, &y, &minus)) { + PyErr_SetString(PyExc_ValueError, "x and y must be int, and minus must be True or False"); + return NULL; + } + + /* Function implementation starts here */ + if (minus == 1) + return Py_BuildValue("i", -(x + y)); + return Py_BuildValue("i", x + y); +} + +/* + * List of functions to add to pydext in exec_pydext(). + */ +static PyMethodDef pydext_functions[] = { + { "hello", (PyCFunction)pydext_hello, METH_NOARGS, NULL }, + { "hello2", (PyCFunction)pydext_hello2, METH_VARARGS, NULL }, + { "sum", (PyCFunction)pydext_sum, METH_VARARGS | METH_KEYWORDS, pydext_sum_doc }, + { NULL, NULL, 0, NULL } /* marks end of array */ +}; + +/* + * Initialize pydext. May be called multiple times, so avoid + * using static state. + */ +int exec_pydext(PyObject *module) { + PyModule_AddFunctions(module, pydext_functions); + + PyModule_AddStringConstant(module, "__author__", "Irony"); + PyModule_AddStringConstant(module, "__mail__", "892768447@qq.com"); + PyModule_AddStringConstant(module, "__version__", "1.0.0"); + + return 0; /* success */ +} + +/* + * Documentation for pydext. + */ +PyDoc_STRVAR(pydext_doc, "The pydext module"); + + +static PyModuleDef_Slot pydext_slots[] = { + { Py_mod_exec, exec_pydext }, + { 0, NULL } +}; + +static PyModuleDef pydext_def = { + PyModuleDef_HEAD_INIT, + "pydext", + pydext_doc, + 0, /* m_size */ + NULL, /* m_methods */ + pydext_slots, + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + +PyMODINIT_FUNC PyInit_pydext() { + return PyModuleDef_Init(&pydext_def); +} diff --git a/C和C++扩展/pydext/pydext/pydext.vcxproj b/C和C++扩展/pydext/pydext/pydext.vcxproj new file mode 100644 index 0000000..6184a2a --- /dev/null +++ b/C和C++扩展/pydext/pydext/pydext.vcxproj @@ -0,0 +1,203 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {023C9F4B-FECC-430A-81D2-7044FAFF15D0} + pydext + 3.5 + 10.0.16299.0 + + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + RegistryView.Registry32 + RegistryView.Registry64 + $(PythonVersion)-32 + $(PythonVersion) + $([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\$(PythonTag)\InstallPath', null, null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\$(PythonTag)\InstallPath', null, null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\$(PythonTag)\InstallPath', 'ExecutablePath', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\$(PythonTag)\InstallPath', 'ExecutablePath', null, $(RegistryView))) + $(PythonHome)python.exe + $([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'dev', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'dev', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'core_pdb', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'core_pdb', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'core_d', null, $(RegistryView))) + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\$(PythonTag)\InstalledFeatures', 'core_d', null, $(RegistryView))) + _d + $([System.IO.Path]::GetDirectoryName($(PythonExe)))\python$(PythonDebugSuffix).exe + $(PythonExe) + + + + WindowsLocalDebugger + PythonDebugLaunchProvider + + + + + + + + + + + + + + + + + + + + pydext$(PythonDebugSuffix) + .pyd + $(PythonDExe) + -i -c "print('>>> import pydext'); import pydext" + PYTHONPATH=$(OutDir) + $(DefaultDebuggerFlavor) + + + pydext + .pyd + $(PythonExe) + -i -c "print('>>> import pydext'); import pydext" + PYTHONPATH=$(OutDir) + $(DefaultDebuggerFlavor) + + + pydext$(PythonDebugSuffix) + .pyd + $(PythonDExe) + -i -c "print('>>> import pydext'); import pydext" + PYTHONPATH=$(OutDir) + $(DefaultDebuggerFlavor) + + + pydext + .pyd + $(PythonExe) + -i -c "print('>>> import pydext'); import pydext" + PYTHONPATH=$(OutDir) + $(DefaultDebuggerFlavor) + + + + Level3 + Disabled + MultithreadedDLL + D:\soft\Python35\include;$(PythonHome)Include;%(AdditionalIncludeDirectories) + true + + + true + $(PythonHome)libs;%(AdditionalLibraryDirectories) + + + + + Level3 + Disabled + MultithreadedDLL + $(PythonHome)Include;%(AdditionalIncludeDirectories) + true + + + true + $(PythonHome)libs;%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + Multithreaded + D:\soft\Python35\include;$(PythonHome)Include;%(AdditionalIncludeDirectories) + true + + + true + true + true + libucrt.lib;%(IgnoreSpecificDefaultLibraries) + ucrt.lib;%(AdditionalDependencies) + $(PythonHome)libs;%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + Multithreaded + $(PythonHome)Include;%(AdditionalIncludeDirectories) + true + + + true + true + true + libucrt.lib;%(IgnoreSpecificDefaultLibraries) + ucrt.lib;%(AdditionalDependencies) + $(PythonHome)libs;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/C和C++扩展/pydext/pydext/pydext.vcxproj.filters b/C和C++扩展/pydext/pydext/pydext.vcxproj.filters new file mode 100644 index 0000000..2b20133 --- /dev/null +++ b/C和C++扩展/pydext/pydext/pydext.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/C和C++扩展/pydext/pydext/pydext.vcxproj.user b/C和C++扩展/pydext/pydext/pydext.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/C和C++扩展/pydext/pydext/pydext.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/C和C++扩展/pydext/test.py b/C和C++扩展/pydext/test.py new file mode 100644 index 0000000..38c6394 --- /dev/null +++ b/C和C++扩展/pydext/test.py @@ -0,0 +1,19 @@ +import sys +sys.path.insert(0, './Release') + +import pydext + +print(pydext) +print(dir(pydext)) + +print(pydext.__author__) +print(pydext.__mail__) + +print(pydext.hello()) + +print(pydext.hello2('Irony')) + +print(pydext.sum(1, 5)) + +# 结果变负数 +print(pydext.sum(1, 5, minus=True)) diff --git a/README.md b/README.md index 7fdb4ac..f2997a6 100644 --- a/README.md +++ b/README.md @@ -1,70 +1,71 @@ -# 各种各样的PyQt测试和例子 - -### [Python3.4.4 or Python3.5][PyQt5] - -[客户端](https://github.com/892768447/PyQtClient) - -### 1.常见例子 - - [1.1 右下角弹出框](右下角弹出框/) - - [1.2 单实例应用](单实例应用/) - - [1.3 字体测试](字体测试/) - - [1.4 程序重启](程序重启/) - - [1.5 验证码控件](验证码控件/) - - [1.6 表格复制](表格复制/) - - [1.7 梦幻树](梦幻树/) - - [1.8 自定义属性测试](自定义属性测试/) - - [1.9 自动更新](自动更新/) - - [1.10 自定义QWidget的QSS样式](自定义QWidget的QSS样式/) - - [1.11 浏览器获取Cookie](浏览器获取Cookie/) - - [1.12 全局热键](全局热键/) - - [1.13 图片加载](图片加载/) - - [1.14 窗口重启](窗口重启/) - - [1.15 气泡提示](气泡提示/) - - [1.16 自定义import](自定义import/) - - [1.17 下拉选择联动](下拉选择联动/) - - [1.18 人脸描点检测](人脸描点检测/) - - [1.19 腾讯视频热播列表](腾讯视频热播列表/) - - 1.20 exec()动态生成控件 - - [1. 动态控件基础例子 - 动态生成按钮](partner_625781186/1.exec动态生成控件/dynamic_button) - - [2. 动态控件基础例子 - 动态生成菜单](partner_625781186/1.exec动态生成控件/dynamic_Menu) - - [3. 配合setting记录模型类型](partner_625781186/1.exec动态生成控件/) - - [1.21 仿QQ设置面板](仿QQ设置面板/) - - [1.22 Json生成QTreeWidget](Json生成QTreeWidget/) - - [1.23 嵌入外部窗口](嵌入外部窗口/) - - [1.24 必应壁纸](https://github.com/892768447/BingWallpaper) - - [1.25 网络操作](网络操作/) - - [1.26 无边框自定义标题栏窗口](无边框自定义标题栏窗口/) - - [1.27 QRC资源文件使用](QRC资源文件使用/) - - [1.28 C和C++扩展](C和C++扩展/) - - [1.28.1 pyx和c++](C和C++扩展/pyx和c++/) - - [1.28.2 py转pyd](C和C++扩展/py转pyd/) - - -### [2.QGraphicsView练习](QGraphicsView练习/) - - [2.1 世界地图](QGraphicsView练习/世界地图) - - [2.2 添加QWidget](QGraphicsView练习/添加QWidget.py) - - [2.3 QChartToolTipTest](QGraphicsView练习/QChartToolTipTest.py) - -### [3.PyQtChart练习](PyQtChart练习/) - - [3.1 charts](PyQtChart练习/charts) - - [3.2 test](PyQtChart练习/test) - -### [4.界面美化](界面美化/) - - [4.1 QSS美化例子](界面美化/QSS美化例子) - - [4.2 Flat Style](https://github.com/892768447/QFlat) - - [4.3 QMessageBox样式](界面美化/QMessageBox样式) - - [4.4 QScrollBar滚动条样式](界面美化/QScrollBar滚动条样式) - - [4.5 QLabel圆形头像](界面美化/QLabel圆形头像) - - [4.6 QFileSystemModel图标](界面美化/QFileSystemModel图标) - - [4.7 QPushButton进度动画](界面美化/QPushButton进度动画) - - [4.8 折叠动画效果](partner_625781186/2.折叠控件/) - - [4.9 水波纹进度条](界面美化/水波纹进度条) - -# QQ群 - - [PyQt & PySide](https://jq.qq.com/?_wv=1027&k=50LWvn9) - - [PyQt学习互助](https://jq.qq.com/?_wv=1027&k=5QVVEdF) - -# [Donate-打赏](Donate/) - -# Wiki +# 各种各样的PyQt测试和例子 + +### [Python3.4.4 or Python3.5][PyQt5] + +[客户端](https://github.com/892768447/PyQtClient) + +### 1.常见例子 + - [1.1 右下角弹出框](右下角弹出框/) + - [1.2 单实例应用](单实例应用/) + - [1.3 字体测试](字体测试/) + - [1.4 程序重启](程序重启/) + - [1.5 验证码控件](验证码控件/) + - [1.6 表格复制](表格复制/) + - [1.7 梦幻树](梦幻树/) + - [1.8 自定义属性测试](自定义属性测试/) + - [1.9 自动更新](自动更新/) + - [1.10 自定义QWidget的QSS样式](自定义QWidget的QSS样式/) + - [1.11 浏览器获取Cookie](浏览器获取Cookie/) + - [1.12 全局热键](全局热键/) + - [1.13 图片加载](图片加载/) + - [1.14 窗口重启](窗口重启/) + - [1.15 气泡提示](气泡提示/) + - [1.16 自定义import](自定义import/) + - [1.17 下拉选择联动](下拉选择联动/) + - [1.18 人脸描点检测](人脸描点检测/) + - [1.19 腾讯视频热播列表](腾讯视频热播列表/) + - 1.20 exec()动态生成控件 + - [1. 动态控件基础例子 - 动态生成按钮](partner_625781186/1.exec动态生成控件/dynamic_button) + - [2. 动态控件基础例子 - 动态生成菜单](partner_625781186/1.exec动态生成控件/dynamic_Menu) + - [3. 配合setting记录模型类型](partner_625781186/1.exec动态生成控件/) + - [1.21 仿QQ设置面板](仿QQ设置面板/) + - [1.22 Json生成QTreeWidget](Json生成QTreeWidget/) + - [1.23 嵌入外部窗口](嵌入外部窗口/) + - [1.24 必应壁纸](https://github.com/892768447/BingWallpaper) + - [1.25 网络操作](网络操作/) + - [1.26 无边框自定义标题栏窗口](无边框自定义标题栏窗口/) + - [1.27 QRC资源文件使用](QRC资源文件使用/) + - [1.28 C和C++扩展](C和C++扩展/) + - [1.28.1 pyx和c++](C和C++扩展/pyx和c++/) + - [1.28.2 py转pyd](C和C++扩展/py转pyd/) + - [1.28.3 pydext](C和C++扩展/pydext/) + + +### [2.QGraphicsView练习](QGraphicsView练习/) + - [2.1 世界地图](QGraphicsView练习/世界地图) + - [2.2 添加QWidget](QGraphicsView练习/添加QWidget.py) + - [2.3 QChartToolTipTest](QGraphicsView练习/QChartToolTipTest.py) + +### [3.PyQtChart练习](PyQtChart练习/) + - [3.1 charts](PyQtChart练习/charts) + - [3.2 test](PyQtChart练习/test) + +### [4.界面美化](界面美化/) + - [4.1 QSS美化例子](界面美化/QSS美化例子) + - [4.2 Flat Style](https://github.com/892768447/QFlat) + - [4.3 QMessageBox样式](界面美化/QMessageBox样式) + - [4.4 QScrollBar滚动条样式](界面美化/QScrollBar滚动条样式) + - [4.5 QLabel圆形头像](界面美化/QLabel圆形头像) + - [4.6 QFileSystemModel图标](界面美化/QFileSystemModel图标) + - [4.7 QPushButton进度动画](界面美化/QPushButton进度动画) + - [4.8 折叠动画效果](partner_625781186/2.折叠控件/) + - [4.9 水波纹进度条](界面美化/水波纹进度条) + +# QQ群 + - [PyQt & PySide](https://jq.qq.com/?_wv=1027&k=50LWvn9) + - [PyQt学习互助](https://jq.qq.com/?_wv=1027&k=5QVVEdF) + +# [Donate-打赏](Donate/) + +# Wiki - [一些Qt写的三方APP](https://github.com/892768447/PyQt/wiki/3rd-party-applications) \ No newline at end of file