在Python中,这将是final_char = mystring[-1].我怎么能在Rust做同样的事情?
我试过了
mystring[mystring.len() - 1]
Run Code Online (Sandbox Code Playgroud)
但我得到了错误 the type 'str' cannot be indexed by 'usize'
我希望创建一个图像浏览器,在本机外观文件浏览器上显示漂亮均匀的平铺缩略图.
在Windows上,我希望它看起来像这样:
在ubuntu上,我希望它看起来与此类似:
但这就是现在可用的:
我面临的一个问题涉及为图像指定正确的缩略图大小.我知道我可以使用代码以编程方式设置缩略图大小self.setIconSize(QSize(32, 32)),但是,以这种方式设置缩略图大小可能会导致大小与系统默认值不一致,使其看起来不自然.
所以我的问题是:如何获得在用户桌面上设置的"默认缩略图大小",使我的缩略图外观与用户的操作系统一致(使用qt5或更具体的PySide2或PyQt5)?
这是我到目前为止使用的代码:`
import sys
from PySide2.QtCore import QSize
from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QApplication, QListWidget, QListWidgetItem, QMainWindow
class ThumbsWindow(QListWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.initUI()
def initUI(self):
self.setViewMode(QListWidget.IconMode)
self.setIconSize(QSize(32, 32))
myimage_path = "./images/web.png"
myimage_path1 = "./images/image1.jpg"
myimage_path2 = "./images/image2.jpg"
myimage_path3 = "./images/image3.jpg"
image_list = [myimage_path, myimage_path1, myimage_path2, myimage_path3]
# create a list of QIcons
image_items = [QListWidgetItem(QIcon(path_x), "sample image") for path_x in image_list]
# add each of the …Run Code Online (Sandbox Code Playgroud) 我目前正致力于在Appengine标准环境中运行烧瓶的项目,我正在尝试在我项目的默认Appengine存储桶中提供已上传到Google Cloud Storage的图像.
这是我目前拥有的路由代码:
# main.py
from google.appengine.api import images
from flask import Flask, send_file
app = Flask(__name__)
...
@app.route("/sample_route")
def sample_handler():
myphoto = images.Image(filename="/gs/myappname.appspot.com/mysamplefolder/photo.jpg")
return send_file(myphoto)
...
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一个AttributeError: 'Image' object has no attribute 'read'错误.
问题是,如何使用python和flask使用任意路径提供来自谷歌云存储的图像?
编辑:
我实际上是在尝试提供我上传到我的应用引擎项目中的默认云存储桶的图像.
我还尝试使用以下代码提供图像但没有成功:
# main.py
from google.appengine.api import images
from flask import Flask, send_file
app = Flask(__name__)
...
@app.route("/sample_route")
def sample_handler():
import cloudstorage as gcs
gcs_file = gcs.open("/mybucketname/mysamplefolder/photo.jpg")
img = gcs_file.read()
gcs_file.close()
return send_file(img, mimetype='image/jpeg')
...
Run Code Online (Sandbox Code Playgroud) 我目前正在以编程方式将产品导入到我的产品目录中,但是,我在上传每个产品的图像时遇到困难。我的代码如下所示:
# frobshop/custom_utils/product_importer.py
from oscar.apps.catalogue.models import Product
...
for product in my_product_import_list:
...
product_entry = Product()
product_entry.title = my_product_title
product_entry.product_class = my_product_class
product_entry.category = my_category
product_entry.primary_image = "product_images/my_product_filename.jpg"
product_entry.save()
Run Code Online (Sandbox Code Playgroud)
当我使用开发服务器检查时,产品标题和产品类别等详细信息已成功保存,但是,我不确定如何为每个产品设置图像。
整个product_images文件夹最初位于我的media目录之外,但由于我没有得到任何结果,我将图像的整个文件夹复制粘贴到目录中,media但仍然没有结果。我假设跳过了相当多的步骤,也许有一个关于如何在媒体目录中排列图像的约定。但是,我不确定在哪里可以找到这些步骤和约定。
settings.py这是我的文件中处理我安装的应用程序、媒体目录和静态文件的部分:
# frobshop/frobshop/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'compressor',
'widget_tweaks',
] + get_core_apps(['custom_apps.shipping', 'custom_apps.payment', 'custom_apps.checkout'])
...
STATIC_ROOT = 'static'
STATIC_URL = '/static/'
MEDIA_ROOT = 'media'
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
为了进一步清楚起见,这是我的urls.py
from django.contrib import admin
from …Run Code Online (Sandbox Code Playgroud) 我正在尝试对结帐应用程序中的 mixin.py 文件进行小幅修改(特别是,尝试注释掉OrderPlacementMixin在此 stackoverflow post 中描述的成功订单后自动发送电子邮件的行)。但是,我似乎无法让奥斯卡认出我的叉子。我已经按照这里列举的步骤进行了操作,但没有成功。
这是我完成的步骤
1)custom_apps在项目根目录下创建一个目录,__init__.py里面有一个空文件
2) 运行manage.py oscar_fork_app checkout custom_apps- 此命令生成checkout目录以及多个文件。这是终端输出。我还附上了目录结构的照片
(venv) work@pc:~/MyProjects/oscar2_project/frobshop$ ./manage.py oscar_fork_app checkout custom_apps
Creating package custom_apps/checkout
Creating app config
Creating models.py
Replace the entry 'oscar.apps.checkout.apps.CheckoutConfig' with 'custom_apps.checkout.apps.CheckoutConfig' in INSTALLED_APPS
Run Code Online (Sandbox Code Playgroud)
3) 我'oscar.apps.checkout'在 my INSTALLED_APPSin my 中注释掉settings.py,然后插入'custom_apps.checkout'到 INSTALLED_APPS` 列表的末尾
4)我跑python manage.py runserver了,我得到了异常oscar.core.exceptions.AppNotFoundError: Couldn't find an Oscar app to import …