天道酬勤,学无止境

技术分享

tkinter 无法正确识别屏幕分辨率(tkinter not recognizing screen resolution correctly)

问题 我使用的是 4k 显示器 (3840x2160)。 from tkinter import * root = Tk() width = root.winfo_screenwidth() height = root.winfo_screenheight() print (width, height) mainloop() 当我运行此代码时,输​​出为 1536 x 864 有人可以解释为什么会发生这种情况,以及如何解决它,谢谢。 回答1 这应该是DPI感知的问题,在MSDN官方文档中阅读。 在 windows 10 中:需要使用 SetProcessDpiAwareness(或 SetThreadDpiAwarenessContext),尝试使用: import tkinter as tk import ctypes ctypes.windll.shcore.SetProcessDpiAwareness(2) # your windows version should >= 8.1,it will raise exception. root = tk.Tk() width = root.winfo_screenwidth() height = root.winfo_screenheight() print(width,height) root.mainloop()

2022-01-16 19:22:26   python   tkinter   resolution

PDO 异常在 laravel 中找不到驱动程序(PDO exception could not find driver in laravel)

问题 我试图在 laravel 5 中执行迁移命令。但它显示 PDOException 错误。 我将 database.php 文件更改为以下内容: 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ] 回答1 对于 PDOException:找不到 MySQL 的驱动程序,如果它是基于 Debian 的操作系统, sudo apt-get -y install php5-mysql 有关更多信息,请阅读这篇文章 PDO 异常 回答2 如果您正在寻找简单的解决方案,我遇到了同样的问题,这对我有用.. 当您从终端运行 php artisan 时,您会调用 php5-cli 包。 要使用 XAMPP 的 php 运行 artisan

2022-01-16 19:22:11   php   laravel   migration

如何设置浏览器内部窗口/视口大小?(How do you set the browser inner window/viewport size?)

问题 如果我调用该函数: browser.driver.manage().window().setSize(1000, 1000); 它将我的窗口大小设置为 1000x1000,将我的内部窗口/视口大小设置为 990x918。 内部窗口大小是指实际包含内容的窗口部分,例如,不包括窗口边框或选项卡。 在这种情况下,我在每一边都有一个 5px 的边框,然后是我想要考虑的 82px 的 url 和标签栏。 我想设置内部窗口大小,这样我就不需要专门考虑运行测试的机器,如果它碰巧有一个额外的工具栏。 是否有量角器命令用于设置窗口的实际内部内容填充部分的大小? 根据下面的答案,我将此添加到我的 conf 的 onPrepare 部分: protractor.setViewportSize = function(width, height){ const JS_GET_PADDING = "return {" + "w: window.outerWidth - window.innerWidth," + "h: window.outerHeight - window.innerHeight };"; browser.executeScript(JS_GET_PADDING).then(function(pad){ browser.manage().window().setSize(width +

2022-01-16 19:22:04   javascript   selenium   selenium-webdriver   protractor

使用 Gradle 为 Intellij 15 定义测试源集(Defining a test source set for Intellij 15 with Gradle)

问题 我可以使用以下内容在 Gradle 中定义sourceSet sourceSets { unitTest { java { srcDir 'src/unitTest/java' } resources { srcDir 'src/unitTest/resources' } } } 但是,我似乎无法使用 gradle 定义测试源集。 我可以通过 UI 手动指定它,但是当刷新 gradle 项目时,它们会再次设置为源集,而不是测试源集。 有没有办法在 Gradle 中定义源集,并让 Intellij 知道它是一个测试源集? 回答1 这已经困扰了很多人,请参阅 IDEA-165647。 那里提出的实际可行的解决方案如下所示: sourceSets { test.java.srcDir 'src/unitTest/java' test.resources.srcDir 'src/unitTest/resources' unitTest { java { srcDir 'src/unitTest/java' } resources { srcDir 'src/unitTest/resources' } } } 不同之处在于添加test.java.srcDir和test.resources.srcDir 。

2022-01-16 19:21:57   gradle   build.gradle   intellij-15

是否有 decltype 的快捷方式(Is There a Shortcut to decltype)

问题 在这个答案中,我编写了 C++17 代码: cout << accumulate(cbegin(numbers), cend(numbers), decay_t<decltype(numbers[0])>{}); 这收到了一些关于 C++ 类型关联性质的负面评论,我很遗憾地说我同意:( decay_t<decltype(numbers[0])>{}是一种非常复杂的获取方法: numbers元素的零初始化类型 是否可以保持与numbers元素类型的关联,但不能键入 30 个字符来获取它? 编辑: 我有很多答案涉及用于accumulate或从numbers[0]中提取类型的包装器。 问题是它们需要读者导航到辅助位置以阅读不比初始化代码decay_t<decltype(numbers[0])>{}复杂的解决方案。 我们必须做更多的唯一原因: decltype(numbers[0])是因为数组下标运算符返回一个引用: 错误:将“int”类型的右值表达式无效转换为“int&”类型 有趣的是,关于 decltype 的论点: 如果对象的名称带括号,则将其视为普通的左值表达式 但是, decltype((numbers[0]))仍然只是对numbers元素的引用。 所以最后这些答案可能与我们可以简化这个初始化一样接近:( 回答1 虽然我总是会选择按照@Barry 编写辅助函数,但如果

2022-01-16 19:21:51   c++   c++11   types   decltype   associated-types

与其他列不同的总和(Sum Distinct By Other Column)

问题 我对 PL/SQL 有疑问,因为我是 PL/SQL 世界的新手。 假设我有这样的桌子。 COlumnA COlumnB COlumnC 1 5000000000 X 1 5000000000 X 2 4350000000 X 2 4350000000 X 3 10000000000 X 3 10000000000 X 3 10000000000 X 4 1809469720 Y 5 10000000000 X 5 10000000000 X 6 3000000000 X 6 3000000000 X 我想产生如下的选择语句。 ColumnC |Sum X |32350000000 Y |1809469720 我已经在 Oracle 12c 中通过内部查询解决了这个问题,但是当系统需要转到 Oracle 11g 时,我的查询不再起作用,我只需要一个 select 语句就可以得到预期的结果。 有人可以建议吗? 谢谢! 回答1 这就是我想出的……在 SELECT 列表中使用内联视图而不是相关子查询。 SELECT d.columnc AS "ColumnC" , SUM(d.columnb) AS "Sum" FROM ( SELECT t.columna , t.columnb , t.columnc FROM tablea t GROUP BY t.columna , t

2022-01-16 19:21:41   sql   database   oracle

带有 boost::variant 的 operator<< 是如何实现的(How operator<< with boost::variant is implemented)

问题 我知道boost::variant是这样实现的 template <typename... Vs> struct variant { std::aligned_union<Vs...>::type buffer; .... }; 我们如何为这样的结构创建一个operator<<来打印存储在缓冲区中的类型并将其传递给operator<<用于cout ? 为此,我们需要知道存储在缓冲区中的元素的类型,对吧? 有没有办法知道这一点? 我也在寻找这种实现的解释,如果存在的话。 不仅仅是它存在以及我如何使用它。 回答1 Boost 有一个 apply_visitor 函数,它接受一个通用函数对象并将变体的类型传递给它。 所以实现operator<<就像这样简单: template <class... Ts> std::ostream& operator<<(std::ostream& os, boost::variant<Ts...> const& var) { return boost::apply_visitor(ostream_visitor{os}, var); } 和: struct ostream_visitor : boost::static_visitor<std::ostream&> { std::ostream& os; template <class T> std

2022-01-16 19:21:33   c++   templates   boost   c++14   boost-variant

将渐变背景颜色设置为 LaunchScreen,它将在中心显示徽标图像(Setting gradient background color to LaunchScreen which will display a logo image at center)

问题 我需要在启动屏幕上设置一个渐变背景,中间有一个UIImageView显示应用程序徽标。 我尝试拥有一个视图控制器,但我意识到永远不会调用代码。 我需要一些方法来获得行为,就像下面的代码一样 self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")!) 我经历了很多关于同一主题的答案,大多数关于渐变颜色的问题似乎没有任何额外的要求,比如显示除背景之外的另一张图像。 我可以在 IB 中对颜色进行硬编码,但我没有得到渐变。 回答1 您不能在启动屏幕中运行代码或使用任何自定义类。 基本上,启动屏幕可以使用界面构建器文件并适应大小类/自动布局,但您不能像您一样在代码中创建渐变。 您必须提供可拉伸的图像,其中包含足够的数据以使其在所有分辨率下都可用。 回答2 您可以使用 2 层UIImageView : 第一个是大的并包含背景渐变图像,第二层是标志的居中图像(带有透明背景)。

2022-01-16 19:21:23   ios   uiimageview   splash-screen   launch-screen

发布、调试版本和授权 Google?(Release, debug version and Authorization Google?)

问题 这里我通过谷歌下载了源代码(谷歌教程)授权。 如果您运行调试版本,一切都会按计划进行。 但是如果你安装并运行发行版,它在模拟器或真手机上都不起作用。 告诉我有什么问题? 可能是 SHA1 的问题。 当我做“gradle”->“signingReport”。 我得到以下信息: Variant: releaseUnitTest Config: none ---------- Variant: debugUnitTest Config: debug Store: C:\Users\******\.android\debug.keystore Alias: AndroidDebugKey MD5: <some code****> SHA1: <some code*****> Valid until: <date***> ---------- Variant: release Config: none ---------- Variant: debugAndroidTest Config: debug Store: C:\Users\******\.android\debug.keystore Alias: AndroidDebugKey MD5: <some code****> SHA1: <some code*****> Valid until: <date***> -------

2022-01-16 19:21:19   android   debugging   authentication   release   google-authentication

如何在 Google App Engine Datastore 中插入批量数据?(How to insert bulk data in Google App Engine Datastore?)

问题 我有一些城市、州和国家/地区的 CSV 文件及其 ID、名称等。我想将所有这些数据放入 Google 应用引擎数据存储区。 有人可以建议在开发服务器和生产服务器上执行此操作的有效方法吗? 提前致谢。 回答1 你很幸运。 您描述的功能已融入 appcfg.py: http://code.google.com/appengine/docs/python/tools/uploadingdata.html

2022-01-16 19:21:14   python   google-app-engine   google-cloud-datastore